TAO_CosNotification 2.0.5
|
Implementation of CosNotifyChannelAdmin::EventChannelFactory. More...
#include <EventChannelFactory.h>
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) |
virtual void | validate () |
void | stop_validator (void) |
at shutdown time, this causes the validator thread to exit. | |
bool | handle_change (void) |
Handle change notifications. | |
void | load_event_persistence (void) |
virtual void | save_topology (void) |
TAO_Notify_ProxyConsumer * | find_proxy_consumer (TAO_Notify::IdVec &id_path, size_t position) |
TAO_Notify_ProxySupplier * | find_proxy_supplier (TAO_Notify::IdVec &id_path, size_t position) |
TAO_Notify_Object * | follow_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_Container & | ec_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_Factory * | topology_factory_ |
TAO_Notify::Reconnection_Registry | reconnect_registry_ |
bool | loading_topology_ |
Routing_Slip_Set | routing_slip_restart_set_ |
ACE_Auto_Ptr < TAO_Notify_validate_client_Task > | validate_client_task_ |
PortableServer::POA_var | poa_ |
The POA in which the object is activated. | |
Friends | |
class | TAO_Notify_Builder |
Implementation of CosNotifyChannelAdmin::EventChannelFactory.
typedef TAO_Notify_Refcountable_Guard_T< TAO_Notify_EventChannelFactory > TAO_Notify_EventChannelFactory::Ptr |
Reimplemented from TAO_Notify_Refcountable.
typedef ACE_Unbounded_Set<TAO_Notify::Routing_Slip_Ptr> TAO_Notify_EventChannelFactory::Routing_Slip_Set [private] |
typedef TAO_Notify_Container_T<TAO_Notify_EventChannel> TAO_Notify_EventChannelFactory::TAO_Notify_EventChannel_Container [private] |
TAO_Notify_EventChannelFactory::TAO_Notify_EventChannelFactory | ( | void | ) |
Constructor.
TAO_Notify_EventChannelFactory::~TAO_Notify_EventChannelFactory | ( | ) | [virtual] |
Destructor.
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()
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 Methods
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 | ) | [private, virtual] |
= 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 | ) | [private, virtual] |
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.
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 | ) | [private, virtual] |
void TAO_Notify_EventChannelFactory::release | ( | void | ) | [private, virtual] |
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 | ) | [private, virtual] |
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 | ) | [private, virtual] |
void TAO_Notify_EventChannelFactory::validate | ( | ) | [virtual] |
friend class TAO_Notify_Builder [friend] |
Reimplemented from TAO_Notify_Object.
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] |
The POA in which the object is activated.
Reimplemented from TAO_Notify_Object.
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] |