#include <EventChannelFactory.h>
Inheritance diagram for TAO_Notify_EventChannelFactory:
Public Types | |
typedef TAO_Notify_Refcountable_Guard_T< TAO_Notify_EventChannelFactory > | Ptr |
Public Member Functions | |
TAO_Notify_EventChannelFactory (void) | |
Constuctor. | |
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) |
void | remove (TAO_Notify_EventChannel *channel) |
Remove <channel> from the <ec_container_>. | |
virtual CosNotifyFilter::FilterFactory_ptr | get_default_filter_factory () |
Accesor for the default filter factory shared by all EC's. | |
void | load_topology (void) |
void | set_topology_factory (TAO_Notify::Topology_Factory *sf) |
virtual bool | is_persistent () 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_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 () const |
Find the id associated with topology object. | |
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) |
= NotifyExt methods | |
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) |
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 () |
virtual ::CosNotifyChannelAdmin::EventChannel_ptr | get_event_channel (CosNotifyChannelAdmin::ChannelID id) |
TAO_Notify_EventChannel_Container & | ec_container () |
virtual void | release (void) |
Release this object. | |
Private Attributes | |
CosNotifyFilter::FilterFactory_var | default_filter_factory_ |
The default filter factory. | |
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_ |
Friends | |
class | TAO_Notify_Builder |
typedef ACE_Unbounded_Set<TAO_Notify::Routing_Slip_Ptr> TAO_Notify_EventChannelFactory::Routing_Slip_Set [private] |
typedef TAO_Notify_Refcountable_Guard_T< TAO_Notify_EventChannelFactory > TAO_Notify_EventChannelFactory::Ptr |
Reimplemented from TAO_Notify_Refcountable.
typedef TAO_Notify_Container_T<TAO_Notify_EventChannel> TAO_Notify_EventChannelFactory::TAO_Notify_EventChannel_Container [private] |
TAO_Notify_EventChannelFactory::TAO_Notify_EventChannelFactory | ( | void | ) |
Constuctor.
TAO_Notify_EventChannelFactory::~TAO_Notify_EventChannelFactory | ( | ) | [virtual] |
Destructor.
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 | ) |
Remove <channel> from the <ec_container_>.
CosNotifyFilter::FilterFactory_ptr TAO_Notify_EventChannelFactory::get_default_filter_factory | ( | ) | [virtual] |
Accesor for the default filter factory shared by all EC's.
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 | ( | ) | 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.
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()
Reimplemented from TAO_Notify::Topology_Object.
TAO_Notify::Topology_Object * TAO_Notify_EventChannelFactory::load_child | ( | const ACE_CString & | , | |
CORBA::Long | , | |||
const TAO_Notify::NVPList & | ||||
) | [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 | ( | ) | 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] |
= NotifyExt methods
int TAO_Notify_EventChannelFactory::shutdown | ( | void | ) | [private, virtual] |
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 | |||
) | [private] |
= CosNotifyChannelAdmin Methods
CosNotifyChannelAdmin::ChannelIDSeq * TAO_Notify_EventChannelFactory::get_all_channels | ( | ) | [private] |
CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_EventChannelFactory::get_event_channel | ( | CosNotifyChannelAdmin::ChannelID | id | ) | [private] |
TAO_Notify_EventChannelFactory::TAO_Notify_EventChannel_Container & TAO_Notify_EventChannelFactory::ec_container | ( | ) | [private] |
void TAO_Notify_EventChannelFactory::release | ( | void | ) | [private, virtual] |
friend class TAO_Notify_Builder [friend] |
Reimplemented from TAO_Notify_Object.
CosNotifyFilter::FilterFactory_var TAO_Notify_EventChannelFactory::default_filter_factory_ [private] |
The default filter factory.
ACE_Auto_Ptr< TAO_Notify_EventChannel_Container > TAO_Notify_EventChannelFactory::ec_container_ [private] |
Container for Event Channels.
TAO_SYNCH_MUTEX TAO_Notify_EventChannelFactory::topology_save_lock_ [private] |
CosNotifyChannelAdmin::EventChannelFactory_var TAO_Notify_EventChannelFactory::channel_factory_ [private] |
short TAO_Notify_EventChannelFactory::topology_save_seq_ [private] |
change-in-progress detector to avoid duplicates
bool TAO_Notify_EventChannelFactory::loading_topology_ [private] |