TAO_CosNotification  2.4.1
Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Friends | List of all members
TAO_Notify_EventChannelFactory Class Reference

Implementation of CosNotifyChannelAdmin::EventChannelFactory. More...

#include <EventChannelFactory.h>

Inheritance diagram for TAO_Notify_EventChannelFactory:
Inheritance graph
[legend]
Collaboration diagram for TAO_Notify_EventChannelFactory:
Collaboration graph
[legend]

Public Types

typedef TAO_Notify_Refcountable_Guard_T< TAO_Notify_EventChannelFactoryPtr
 
- Public Types inherited from TAO_Notify_Object
typedef CORBA::Long ID
 Id for Objects. More...
 
- Public Types inherited from TAO_Notify_Refcountable
typedef TAO_Notify_Refcountable_Guard_T< TAO_Notify_RefcountablePtr
 

Public Member Functions

 TAO_Notify_EventChannelFactory (void)
 Constructor. More...
 
void init (PortableServer::POA_ptr poa)
 Init the factory. More...
 
virtual ~TAO_Notify_EventChannelFactory ()
 Destructor. More...
 
virtual void _add_ref (void)
 = ServantBase Methods More...
 
virtual void _remove_ref (void)
 
virtual void remove (TAO_Notify_EventChannel *channel)
 Remove channel from the <ec_container_> More...
 
virtual CosNotifyChannelAdmin::EventChannel_ptr create_named_channel (const CosNotification::QoSProperties &initial_qos, const CosNotification::AdminProperties &initial_admin, CosNotifyChannelAdmin::ChannelID_out id, const char *name)
 
void load_topology (void)
 
void set_topology_factory (TAO_Notify::Topology_Factory *sf)
 
virtual bool is_persistent (void) const
 Should this object be saved? More...
 
virtual void save_persistent (TAO_Notify::Topology_Saver &saver)
 
virtual bool change_to_parent (void)
 Send change to parent. More...
 
virtual TAO_Notify::Topology_Objectload_child (const ACE_CString &type, CORBA::Long id, const TAO_Notify::NVPList &attrs)
 Create a child of the appropriate type and return it. More...
 
CosNotifyChannelAdmin::EventChannelFactory_ptr activate_self (void)
 
virtual void reconnect (void)
 
virtual void validate ()
 
void stop_validator (void)
 at shutdown time, this causes the validator thread to exit. More...
 
bool handle_change (void)
 Handle change notifications. More...
 
void load_event_persistence (void)
 
virtual void save_topology (void)
 
TAO_Notify_ProxyConsumerfind_proxy_consumer (TAO_Notify::IdVec &id_path, size_t position)
 
TAO_Notify_ProxySupplierfind_proxy_supplier (TAO_Notify::IdVec &id_path, size_t position)
 
TAO_Notify_Objectfollow_id_path (TAO_Notify::IdVec &id_path, size_t position)
 
virtual TAO_Notify_Object::ID get_id (void) const
 Find the id associated with topology object. More...
 
- Public Member Functions inherited from TAO_Notify::Topology_Parent
bool child_change (void)
 
- Public Member Functions inherited from TAO_Notify::Topology_Object
 Topology_Object ()
 The constructor. More...
 
virtual ~Topology_Object ()
 The destructor. More...
 
virtual void initialize (Topology_Parent *topology_parent)
 Init this object with data from <rhs>. More...
 
void get_id_path (IdVec &id_path) const
 Get the path of id's from the root to this object. More...
 
bool is_changed (void) const
 Is there an unsaved change for this object or its children? More...
 
- Public Member Functions inherited from TAO_Notify_Object
virtual ~TAO_Notify_Object (void)
 Destructor. More...
 
ID id (void) const
 This Object's ID. More...
 
virtual CORBA::Object_ptr activate (PortableServer::Servant servant)
 Activate. More...
 
virtual CORBA::Object_ptr activate (PortableServer::Servant servant, CORBA::Long id)
 Activate with existing id. More...
 
void deactivate (void)
 Deactivate. More...
 
bool has_shutdown (void)
 Have we been shutdown. returns true if shutdown. More...
 
void execute_task (TAO_Notify_Method_Request &method_request)
 
CORBA::Object_ptr ref (void)
 Get CORBA Ref. More...
 
virtual void set_qos (const CosNotification::QoSProperties &qos)
 Set the QoS Properties. More...
 
CosNotification::QoSPropertiesget_qos (void)
 Get the QoS Properties. More...
 
bool find_qos_property_value (const char *name, CosNotification::PropertyValue &value) const
 
virtual TAO_Notify_Timertimer (void)
 Obtain the Timer manager associated with this object. More...
 
TAO_Notify_Event_Managerevent_manager (void)
 Accessor for the Event Manager. More...
 
virtual void load_attrs (const TAO_Notify::NVPList &attrs)
 
TAO_Notify_Worker_Taskget_worker_task (void)
 Allow access to the underlying worker task. More...
 
- Public Member Functions inherited from TAO_Notify_Refcountable
 TAO_Notify_Refcountable (void)
 Constructor. More...
 
virtual ~TAO_Notify_Refcountable ()
 
CORBA::ULong _incr_refcnt (void)
 
CORBA::ULong _decr_refcnt (void)
 
- Public Member Functions inherited from TAO_Notify::Topology_Savable
virtual ~Topology_Savable (void)
 Destructor. More...
 

Protected Member Functions

virtual ::CosNotifyChannelAdmin::EventChannel_ptr create_channel (const CosNotification::QoSProperties &initial_qos, const CosNotification::AdminProperties &initial_admin, CosNotifyChannelAdmin::ChannelID_out id)
 = CosNotifyChannelAdmin Methods More...
 
virtual ::CosNotifyChannelAdmin::ChannelIDSeqget_all_channels (void)
 
virtual ::CosNotifyChannelAdmin::EventChannel_ptr get_event_channel (CosNotifyChannelAdmin::ChannelID id)
 
- Protected Member Functions inherited from TAO_Notify::Topology_Object
bool self_change (void)
 Method to report change in this object. More...
 
Topology_Parenttopology_parent () const
 pointer to our topological parent More...
 
bool send_change (void)
 Handle details of propagating change. More...
 
bool send_deletion_change ()
 Handle details of propagating change for a deleted object. More...
 
- Protected Member Functions inherited from TAO_Notify_Object
 TAO_Notify_Object (void)
 Constructor. More...
 
void initialize (TAO_Notify_Object *parent)
 Init this object with data from <rhs>. More...
 
void inherit_poas (TAO_Notify_Object &parent)
 Uses the poas from the supplied object. More...
 
void adopt_poa (TAO_Notify_POA_Helper *single)
 Adopts the supplied poa as all are poas. More...
 
void set_primary_as_proxy_poa ()
 Changes the primary poa to the current proxy poa. More...
 
TAO_Notify_POA_Helperproxy_poa (void)
 Accessor for the proxy_poa_. More...
 
TAO_Notify_POA_Helperobject_poa (void)
 Accessor for the object_poa_. More...
 
TAO_Notify_POA_Helperpoa (void)
 Get the POA assigned to us. More...
 
void set_event_manager (TAO_Notify_Event_Manager *event_manager)
 
void set_admin_properties (TAO_Notify_AdminProperties *admin_properties)
 
TAO_Notify_AdminPropertiesadmin_properties (void)
 Accessor for the Admin Properties. More...
 
virtual void qos_changed (const TAO_Notify_QoSProperties &qos_properties)
 
virtual void save_attrs (TAO_Notify::NVPList &attrs)
 

Private Types

typedef ACE_Unbounded_Set< TAO_Notify::Routing_Slip_PtrRouting_Slip_Set
 
typedef TAO_Notify_Container_T< TAO_Notify_EventChannelTAO_Notify_EventChannel_Container
 

Private Member Functions

virtual void destroy (void)
 = Data Members More...
 
virtual int shutdown (void)
 shutdown More...
 
virtual NotifyExt::ReconnectionRegistry::ReconnectionID register_callback (NotifyExt::ReconnectionCallback_ptr reconnection)
 
virtual void unregister_callback (NotifyExt::ReconnectionRegistry::ReconnectionID id)
 
virtual CORBA::Boolean is_alive (void)
 
TAO_Notify_EventChannel_Containerec_container ()
 
virtual void release (void)
 Release this object. More...
 

Private Attributes

ACE_Auto_Ptr< TAO_Notify_EventChannel_Containerec_container_
 Container for Event Channels. More...
 
TAO_SYNCH_MUTEX topology_save_lock_
 
CosNotifyChannelAdmin::EventChannelFactory_var channel_factory_
 
short topology_save_seq_
 Change-in-progress detector to avoid duplicates. More...
 
TAO_Notify::Topology_Factorytopology_factory_
 
TAO_Notify::Reconnection_Registry reconnect_registry_
 
bool loading_topology_
 
Routing_Slip_Set routing_slip_restart_set_
 
ACE_Auto_Ptr< TAO_Notify_validate_client_Taskvalidate_client_task_
 
PortableServer::POA_var poa_
 

Friends

class TAO_Notify_Builder
 

Additional Inherited Members

- Protected Attributes inherited from TAO_Notify::Topology_Object
bool self_changed_
 true if this object changed since last save_persistent More...
 
bool children_changed_
 true of any of this object's children changed since last save_persistent More...
 
Topology_Parenttopology_parent_
 A safely-typed copy of parent_;. More...
 
- Protected Attributes inherited from TAO_Notify_Object
TAO_Notify_QoSProperties qos_properties_
 = Protected data members. More...
 
TAO_SYNCH_MUTEX lock_
 The mutex to serialize access to state variables. More...
 

Detailed Description

Implementation of CosNotifyChannelAdmin::EventChannelFactory.

Member Typedef Documentation

Constructor & Destructor Documentation

TAO_Notify_EventChannelFactory::TAO_Notify_EventChannelFactory ( void  )

Constructor.

TAO_Notify_EventChannelFactory::~TAO_Notify_EventChannelFactory ( )
virtual

Destructor.

Member Function Documentation

void TAO_Notify_EventChannelFactory::_add_ref ( void  )
virtual

= ServantBase Methods

void TAO_Notify_EventChannelFactory::_remove_ref ( void  )
virtual
CosNotifyChannelAdmin::EventChannelFactory_ptr TAO_Notify_EventChannelFactory::activate_self ( void  )
bool TAO_Notify_EventChannelFactory::change_to_parent ( void  )
virtual

Send change to parent.

Override this if you don't expect to have a parent (top level of tree) private virtual because this should only be called from send_change()

Returns
false if save will never happen

Reimplemented from TAO_Notify::Topology_Object.

CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_EventChannelFactory::create_channel ( const CosNotification::QoSProperties initial_qos,
const CosNotification::AdminProperties initial_admin,
CosNotifyChannelAdmin::ChannelID_out  id 
)
protected
CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_EventChannelFactory::create_named_channel ( const CosNotification::QoSProperties initial_qos,
const CosNotification::AdminProperties initial_admin,
CosNotifyChannelAdmin::ChannelID_out  id,
const char *  name 
)
virtual

This method is called by the Notify_Service when the event channel is automatically created and bound in the name service.

void TAO_Notify_EventChannelFactory::destroy ( void  )
privatevirtual

= Data Members

= NotifyExt methods

TAO_Notify_EventChannelFactory::TAO_Notify_EventChannel_Container & TAO_Notify_EventChannelFactory::ec_container ( )
private
TAO_Notify_ProxyConsumer * TAO_Notify_EventChannelFactory::find_proxy_consumer ( TAO_Notify::IdVec id_path,
size_t  position 
)
TAO_Notify_ProxySupplier * TAO_Notify_EventChannelFactory::find_proxy_supplier ( TAO_Notify::IdVec id_path,
size_t  position 
)
TAO_Notify_Object* TAO_Notify_EventChannelFactory::follow_id_path ( TAO_Notify::IdVec id_path,
size_t  position 
)
CosNotifyChannelAdmin::ChannelIDSeq * TAO_Notify_EventChannelFactory::get_all_channels ( void  )
protected
CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_EventChannelFactory::get_event_channel ( CosNotifyChannelAdmin::ChannelID  id)
protected
TAO_Notify_Object::ID TAO_Notify_EventChannelFactory::get_id ( void  ) const
virtual

Find the id associated with topology object.

A bit of a hack because id is unknown to Topology_Object the get_id returns the same thing as id – we just need someone to find it for us.

Reimplemented from TAO_Notify::Topology_Object.

bool TAO_Notify_EventChannelFactory::handle_change ( void  )

Handle change notifications.

void TAO_Notify_EventChannelFactory::init ( PortableServer::POA_ptr  poa)

Init the factory.

CORBA::Boolean TAO_Notify_EventChannelFactory::is_alive ( void  )
privatevirtual
bool TAO_Notify_EventChannelFactory::is_persistent ( void  ) const
virtual

Should this object be saved?

This is a way for send_change() and save_persistent() to find out if this object has a persistent QoS connection property.

Returns
true (default) if object should be saved.

Reimplemented from TAO_Notify::Topology_Object.

TAO_Notify::Topology_Object * TAO_Notify_EventChannelFactory::load_child ( const ACE_CString type,
CORBA::Long  id,
const TAO_Notify::NVPList attrs 
)
virtual

Create a child of the appropriate type and return it.

Use "type" as passed in to determine what kind of child (supporting the Topology_Object interface) to create and return. Inform it of its new ID.

Reimplemented from TAO_Notify::Topology_Object.

void TAO_Notify_EventChannelFactory::load_event_persistence ( void  )
void TAO_Notify_EventChannelFactory::load_topology ( void  )

Use the registered Topology_Factory to create a loader, and load the topology. If no Topology_Factory is registered then nothing will be loaded.

void TAO_Notify_EventChannelFactory::reconnect ( void  )
virtual

Re-establish connections that we had before a shutdown.

After a topology restore, this method is called so we can reconnect to any external objects with whom we were interacting. We should call the reconnect() method on all of our children to give them the chance to do the same.

Reimplemented from TAO_Notify::Topology_Savable.

NotifyExt::ReconnectionRegistry::ReconnectionID TAO_Notify_EventChannelFactory::register_callback ( NotifyExt::ReconnectionCallback_ptr  reconnection)
privatevirtual
void TAO_Notify_EventChannelFactory::release ( void  )
privatevirtual

Release this object.

Implements TAO_Notify_Refcountable.

void TAO_Notify_EventChannelFactory::remove ( TAO_Notify_EventChannel channel)
virtual

Remove channel from the <ec_container_>

void TAO_Notify_EventChannelFactory::save_persistent ( TAO_Notify::Topology_Saver saver)
virtual

Save our state to a Topology_Saver.

Use the methods of a Topology_Saver to store all information we want persisted. This function is called by our parent, which gives us a saver to use. In turn, we must call this function on all of our children. The implementation should look like: bool change = this->self_changed_; this->self_changed_ = false; this->children_changed_ = false; if (is_persistent ()) { bool want_all_children = saver.begin_object( this->id(), type, attrs, change); for all children { if (want_all_children || child.is_changed()) { child.save_persistent(saver); } } for all deleted children { saver.delete_child(child_type, child_id); } saver.end_object(this->id(), type); )

Implements TAO_Notify::Topology_Savable.

void TAO_Notify_EventChannelFactory::save_topology ( void  )
virtual
void TAO_Notify_EventChannelFactory::set_topology_factory ( TAO_Notify::Topology_Factory sf)

Use the passed in saver factory to generate topology saver objects. Does not take ownership.

int TAO_Notify_EventChannelFactory::shutdown ( void  )
privatevirtual

shutdown

Reimplemented from TAO_Notify_Object.

void TAO_Notify_EventChannelFactory::stop_validator ( void  )

at shutdown time, this causes the validator thread to exit.

void TAO_Notify_EventChannelFactory::unregister_callback ( NotifyExt::ReconnectionRegistry::ReconnectionID  id)
privatevirtual
void TAO_Notify_EventChannelFactory::validate ( )
virtual

Friends And Related Function Documentation

friend class TAO_Notify_Builder
friend

Member Data Documentation

CosNotifyChannelAdmin::EventChannelFactory_var TAO_Notify_EventChannelFactory::channel_factory_
private
ACE_Auto_Ptr< TAO_Notify_EventChannel_Container > TAO_Notify_EventChannelFactory::ec_container_
private

Container for Event Channels.

bool TAO_Notify_EventChannelFactory::loading_topology_
private
PortableServer::POA_var TAO_Notify_EventChannelFactory::poa_
private
TAO_Notify::Reconnection_Registry TAO_Notify_EventChannelFactory::reconnect_registry_
private
Routing_Slip_Set TAO_Notify_EventChannelFactory::routing_slip_restart_set_
private
TAO_Notify::Topology_Factory* TAO_Notify_EventChannelFactory::topology_factory_
private
TAO_SYNCH_MUTEX TAO_Notify_EventChannelFactory::topology_save_lock_
private
short TAO_Notify_EventChannelFactory::topology_save_seq_
private

Change-in-progress detector to avoid duplicates.

ACE_Auto_Ptr<TAO_Notify_validate_client_Task> TAO_Notify_EventChannelFactory::validate_client_task_
private

The documentation for this class was generated from the following files: