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)
 Constuctor.
void init (PortableServer::POA_ptr poa ACE_ENV_ARG_DECL)
 Init the factory.
virtual ~TAO_Notify_EventChannelFactory ()
 Destructor.
virtual void _add_ref (ACE_ENV_SINGLE_ARG_DECL)
 = ServantBase Methods
virtual void _remove_ref (ACE_ENV_SINGLE_ARG_DECL)
void remove (TAO_Notify_EventChannel *channel ACE_ENV_ARG_DECL)
 Remove <channel> from the <ec_container_>.
virtual CosNotifyFilter::FilterFactory_ptr get_default_filter_factory (ACE_ENV_SINGLE_ARG_DECL)
 Accesor for the default filter factory shared by all EC's.
void load_topology (ACE_ENV_SINGLE_ARG_DECL)
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 ACE_ENV_ARG_DECL)
virtual bool change_to_parent (ACE_ENV_SINGLE_ARG_DECL)
 Send change to parent.
virtual TAO_Notify::Topology_Objectload_child (const ACE_CString &type, CORBA::Long id, const TAO_Notify::NVPList &attrs ACE_ENV_ARG_DECL)
CosNotifyChannelAdmin::EventChannelFactory_ptr activate_self (ACE_ENV_SINGLE_ARG_DECL)
virtual void reconnect (ACE_ENV_SINGLE_ARG_DECL)
bool handle_change (ACE_ENV_SINGLE_ARG_DECL)
 handle change notifications
void load_event_persistence (ACE_ENV_SINGLE_ARG_DECL)
virtual void save_topology (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
TAO_Notify_ProxyConsumerfind_proxy_consumer (TAO_Notify::IdVec &id_path, size_t position ACE_ENV_ARG_DECL)
TAO_Notify_ProxySupplierfind_proxy_supplier (TAO_Notify::IdVec &id_path, size_t position ACE_ENV_ARG_DECL)
TAO_Notify_Objectfollow_id_path (TAO_Notify::IdVec &id_path, size_t position ACE_ENV_ARG_DECL)
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 (ACE_ENV_SINGLE_ARG_DECL) throw ( CORBA::SystemException )
 = NotifyExt methods
virtual int shutdown (ACE_ENV_SINGLE_ARG_DECL)
 shutdown
virtual NotifyExt::ReconnectionRegistry::ReconnectionID register_callback (NotifyExt::ReconnectionCallback_ptr reconnection ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
virtual void unregister_callback (NotifyExt::ReconnectionRegistry::ReconnectionID id ACE_ENV_ARG_DECL) throw (CORBA::SystemException)
virtual CORBA::Boolean is_alive (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
virtual ::CosNotifyChannelAdmin::EventChannel_ptr create_channel (const CosNotification::QoSProperties &initial_qos, const CosNotification::AdminProperties &initial_admin, CosNotifyChannelAdmin::ChannelID_out id ACE_ENV_ARG_DECL) throw (CORBA::SystemException, CosNotification::UnsupportedQoS, CosNotification::UnsupportedAdmin)
 = CosNotifyChannelAdmin Methods
virtual ::CosNotifyChannelAdmin::ChannelIDSeqget_all_channels (ACE_ENV_SINGLE_ARG_DECL) throw (CORBA::SystemException)
virtual ::CosNotifyChannelAdmin::EventChannel_ptr get_event_channel (CosNotifyChannelAdmin::ChannelID id ACE_ENV_ARG_DECL) throw (CORBA::SystemException, CosNotifyChannelAdmin::ChannelNotFound)
TAO_Notify_EventChannel_Containerec_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_Containerec_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

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]
 


Constructor & Destructor Documentation

TAO_Notify_EventChannelFactory::TAO_Notify_EventChannelFactory void   ) 
 

Constuctor.

TAO_Notify_EventChannelFactory::~TAO_Notify_EventChannelFactory  )  [virtual]
 

Destructor.


Member Function Documentation

virtual void TAO_Notify_EventChannelFactory::_add_ref ACE_ENV_SINGLE_ARG_DECL   )  [virtual]
 

= ServantBase Methods

virtual void TAO_Notify_EventChannelFactory::_remove_ref ACE_ENV_SINGLE_ARG_DECL   )  [virtual]
 

CosNotifyChannelAdmin::EventChannelFactory_ptr TAO_Notify_EventChannelFactory::activate_self ACE_ENV_SINGLE_ARG_DECL   ) 
 

bool TAO_Notify_EventChannelFactory::change_to_parent ACE_ENV_SINGLE_ARG_DECL   )  [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  ACE_ENV_ARG_DECL
throw (CORBA::SystemException, CosNotification::UnsupportedQoS, CosNotification::UnsupportedAdmin) [private]
 

= CosNotifyChannelAdmin Methods

void TAO_Notify_EventChannelFactory::destroy ACE_ENV_SINGLE_ARG_DECL   )  throw ( CORBA::SystemException ) [private, virtual]
 

= NotifyExt methods

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  ACE_ENV_ARG_DECL
 

TAO_Notify_ProxySupplier * TAO_Notify_EventChannelFactory::find_proxy_supplier TAO_Notify::IdVec id_path,
size_t position  ACE_ENV_ARG_DECL
 

TAO_Notify_Object* TAO_Notify_EventChannelFactory::follow_id_path TAO_Notify::IdVec id_path,
size_t position  ACE_ENV_ARG_DECL
 

CosNotifyChannelAdmin::ChannelIDSeq * TAO_Notify_EventChannelFactory::get_all_channels ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [private]
 

virtual CosNotifyFilter::FilterFactory_ptr TAO_Notify_EventChannelFactory::get_default_filter_factory ACE_ENV_SINGLE_ARG_DECL   )  [virtual]
 

Accesor for the default filter factory shared by all EC's.

CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_EventChannelFactory::get_event_channel CosNotifyChannelAdmin::ChannelID id  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException, CosNotifyChannelAdmin::ChannelNotFound) [private]
 

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.

bool TAO_Notify_EventChannelFactory::handle_change ACE_ENV_SINGLE_ARG_DECL   ) 
 

handle change notifications

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

Init the factory.

virtual CORBA::Boolean TAO_Notify_EventChannelFactory::is_alive ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [private, virtual]
 

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.

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  ACE_ENV_ARG_DECL
[virtual]
 

void TAO_Notify_EventChannelFactory::load_event_persistence ACE_ENV_SINGLE_ARG_DECL   ) 
 

void TAO_Notify_EventChannelFactory::load_topology ACE_ENV_SINGLE_ARG_DECL   ) 
 

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 ACE_ENV_SINGLE_ARG_DECL   )  [virtual]
 

NotifyExt::ReconnectionRegistry::ReconnectionID TAO_Notify_EventChannelFactory::register_callback NotifyExt::ReconnectionCallback_ptr reconnection  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException) [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  ACE_ENV_ARG_DECL  ) 
 

Remove <channel> from the <ec_container_>.

void TAO_Notify_EventChannelFactory::save_persistent TAO_Notify::Topology_Saver &saver  ACE_ENV_ARG_DECL  )  [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 ACE_ENV_ARG_PARAMETER); ACE_CHECK; for all children { if (want_all_children || child.is_changed()) { child.save_persistent(saver ACE_ENV_ARG_PARAMETER); ACE_CHECK; } } for all deleted children { saver.delete_child(child_type, child_id); } saver.end_object(this->id(), type ACE_ENV_ARG_PARAMETER); )

Implements TAO_Notify::Topology_Savable.

void TAO_Notify_EventChannelFactory::save_topology ACE_ENV_SINGLE_ARG_DECL   )  throw (CORBA::SystemException) [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 ACE_ENV_SINGLE_ARG_DECL   )  [private, virtual]
 

shutdown

Reimplemented from TAO_Notify_Object.

void TAO_Notify_EventChannelFactory::unregister_callback NotifyExt::ReconnectionRegistry::ReconnectionID id  ACE_ENV_ARG_DECL  )  throw (CORBA::SystemException) [private, virtual]
 


Friends And Related Function Documentation

friend class TAO_Notify_Builder [friend]
 

Reimplemented from TAO_Notify_Object.


Member Data Documentation

CosNotifyChannelAdmin::EventChannelFactory_var TAO_Notify_EventChannelFactory::channel_factory_ [private]
 

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.

bool TAO_Notify_EventChannelFactory::loading_topology_ [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


The documentation for this class was generated from the following files:
Generated on Wed Nov 23 16:23:07 2005 for TAO_CosNotification by  doxygen 1.4.5