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]

List of all members.

Public Types

typedef
TAO_Notify_Refcountable_Guard_T
< TAO_Notify_EventChannelFactory
Ptr

Public Member Functions

 TAO_Notify_EventChannelFactory (void)
 Constructor.
void init (PortableServer::POA_ptr poa)
 Init the factory.
virtual ~TAO_Notify_EventChannelFactory ()
 Destructor.
virtual void _add_ref (void)
 = ServantBase Methods
virtual void _remove_ref (void)
virtual void remove (TAO_Notify_EventChannel *channel)
 Remove channel from the <ec_container_>.
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?
virtual void save_persistent (TAO_Notify::Topology_Saver &saver)
virtual bool change_to_parent (void)
 Send change to parent.
virtual
TAO_Notify::Topology_Object
load_child (const ACE_CString &type, CORBA::Long id, const TAO_Notify::NVPList &attrs)
 Create a child of the appropriate type and return it.
CosNotifyChannelAdmin::EventChannelFactory_ptr activate_self (void)
virtual void reconnect (void)
bool handle_change (void)
 Handle change notifications.
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.

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
virtual
::CosNotifyChannelAdmin::ChannelIDSeq
get_all_channels (void)
virtual
::CosNotifyChannelAdmin::EventChannel_ptr 
get_event_channel (CosNotifyChannelAdmin::ChannelID id)

Private Types

typedef ACE_Unbounded_Set
< TAO_Notify::Routing_Slip_Ptr
Routing_Slip_Set
typedef TAO_Notify_Container_T
< TAO_Notify_EventChannel
TAO_Notify_EventChannel_Container

Private Member Functions

virtual void destroy (void)
 = Data Members
virtual int shutdown (void)
 shutdown
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.

Private Attributes

ACE_Auto_Ptr
< TAO_Notify_EventChannel_Container
ec_container_
 Container for Event Channels.
TAO_SYNCH_MUTEX topology_save_lock_
CosNotifyChannelAdmin::EventChannelFactory_var channel_factory_
short topology_save_seq_
 Change-in-progress detector to avoid duplicates.
TAO_Notify::Topology_Factorytopology_factory_
TAO_Notify::Reconnection_Registry reconnect_registry_
bool loading_topology_
Routing_Slip_Set routing_slip_restart_set_

Friends

class TAO_Notify_Builder


Detailed Description

Implementation of CosNotifyChannelAdmin::EventChannelFactory.

Member Typedef Documentation

Reimplemented from TAO_Notify_Refcountable.


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::init ( PortableServer::POA_ptr  poa  ) 

Init the factory.

void TAO_Notify_EventChannelFactory::_add_ref ( void   )  [virtual]

= ServantBase Methods

void TAO_Notify_EventChannelFactory::_remove_ref ( void   )  [virtual]

void TAO_Notify_EventChannelFactory::remove ( TAO_Notify_EventChannel channel  )  [virtual]

Remove channel from the <ec_container_>.

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::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::set_topology_factory ( TAO_Notify::Topology_Factory sf  ) 

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

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.

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.

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.

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.

CosNotifyChannelAdmin::EventChannelFactory_ptr TAO_Notify_EventChannelFactory::activate_self ( void   ) 

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.

bool TAO_Notify_EventChannelFactory::handle_change ( void   ) 

Handle change notifications.

void TAO_Notify_EventChannelFactory::load_event_persistence ( void   ) 

void TAO_Notify_EventChannelFactory::save_topology ( void   )  [virtual]

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 
)

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.

void TAO_Notify_EventChannelFactory::destroy ( void   )  [private, virtual]

= Data Members

= NotifyExt methods

int TAO_Notify_EventChannelFactory::shutdown ( void   )  [private, virtual]

shutdown

Reimplemented from TAO_Notify_Object.

NotifyExt::ReconnectionRegistry::ReconnectionID TAO_Notify_EventChannelFactory::register_callback ( NotifyExt::ReconnectionCallback_ptr  reconnection  )  [private, virtual]

void TAO_Notify_EventChannelFactory::unregister_callback ( NotifyExt::ReconnectionRegistry::ReconnectionID  id  )  [private, virtual]

CORBA::Boolean TAO_Notify_EventChannelFactory::is_alive ( void   )  [private, virtual]

CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_EventChannelFactory::create_channel ( const CosNotification::QoSProperties initial_qos,
const CosNotification::AdminProperties initial_admin,
CosNotifyChannelAdmin::ChannelID_out  id 
) [protected]

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_EventChannelFactory::TAO_Notify_EventChannel_Container & TAO_Notify_EventChannelFactory::ec_container (  )  [private]

void TAO_Notify_EventChannelFactory::release ( void   )  [private, virtual]

Release this object.

Implements TAO_Notify_Refcountable.


Friends And Related Function Documentation

friend class TAO_Notify_Builder [friend]

Reimplemented from TAO_Notify_Object.


Member Data Documentation

Container for Event Channels.

CosNotifyChannelAdmin::EventChannelFactory_var TAO_Notify_EventChannelFactory::channel_factory_ [private]

Change-in-progress detector to avoid duplicates.


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

Generated on Mon May 19 04:22:57 2008 for TAO_CosNotification by  doxygen 1.5.5