Public Types | Public Member Functions | Protected Member Functions | Private Member Functions

TAO_Notify_SupplierAdmin Class Reference

Implementation of CosNotifyChannelAdmin::SupplierAdmin. More...

#include <SupplierAdmin.h>

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

List of all members.

Public Types

typedef
TAO_Notify_Refcountable_Guard_T
< TAO_Notify_SupplierAdmin
Ptr

Public Member Functions

 TAO_Notify_SupplierAdmin (void)
 Constructor.
virtual ~TAO_Notify_SupplierAdmin ()
 Destructor.
void init (TAO_Notify_EventChannel *ec)
 Init.
virtual void _add_ref (void)
 ServantBase refcount methods.
virtual void _remove_ref (void)
virtual const char * get_admin_type_name () const
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.
TAO_Notify_ProxyConsumerfind_proxy_consumer (TAO_Notify::IdVec &id_path, size_t position)
virtual void destroy (void)
 TAO_Notify_Container_T requires a destroy method.

Protected Member Functions

TAO_Notify::Topology_Objectload_proxy (CORBA::Long id, CosNotifyChannelAdmin::ClientType ctype, const TAO_Notify::NVPList &attrs)
CosNotifyChannelAdmin::ProxyConsumer_ptr obtain_notification_push_consumer_with_qos (CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id, const CosNotification::QoSProperties &initial_qos)
 = NotifyExt::SupplierAdmin methods
virtual
CosNotifyChannelAdmin::AdminID 
MyID (void)
 = CosNotifyChannelAdmin::SupplierAdmin methods
virtual
::CosNotifyChannelAdmin::EventChannel_ptr 
MyChannel (void)
virtual
::CosNotifyChannelAdmin::InterFilterGroupOperator 
MyOperator (void)
virtual
::CosNotifyChannelAdmin::ProxyIDSeq
pull_consumers (void)
virtual
::CosNotifyChannelAdmin::ProxyIDSeq
push_consumers (void)
virtual
::CosNotifyChannelAdmin::ProxyConsumer_ptr 
get_proxy_consumer (CosNotifyChannelAdmin::ProxyID proxy_id)
virtual
::CosNotifyChannelAdmin::ProxyConsumer_ptr 
obtain_notification_pull_consumer (CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id)
virtual
::CosNotifyChannelAdmin::ProxyConsumer_ptr 
obtain_notification_push_consumer (CosNotifyChannelAdmin::ClientType ctype, CosNotifyChannelAdmin::ProxyID_out proxy_id)
virtual
::CosNotification::QoSProperties
get_qos (void)
virtual void set_qos (const CosNotification::QoSProperties &qos)
virtual void validate_qos (const CosNotification::QoSProperties &required_qos, CosNotification::NamedPropertyRangeSeq_out available_qos)
virtual void offer_change (const CosNotification::EventTypeSeq &added, const CosNotification::EventTypeSeq &removed)
virtual CosNotifyFilter::FilterID add_filter (CosNotifyFilter::Filter_ptr new_filter)
virtual void remove_filter (CosNotifyFilter::FilterID filter)
virtual
::CosNotifyFilter::Filter_ptr 
get_filter (CosNotifyFilter::FilterID filter)
virtual
::CosNotifyFilter::FilterIDSeq
get_all_filters (void)
virtual void remove_all_filters (void)
virtual
::CosEventChannelAdmin::ProxyPushConsumer_ptr 
obtain_push_consumer ()
virtual
::CosEventChannelAdmin::ProxyPullConsumer_ptr 
obtain_pull_consumer ()

Private Member Functions

virtual void release (void)
 Release.

Detailed Description

Implementation of CosNotifyChannelAdmin::SupplierAdmin.

Definition at line 40 of file SupplierAdmin.h.


Member Typedef Documentation

Definition at line 45 of file SupplierAdmin.h.


Constructor & Destructor Documentation

TAO_Notify_SupplierAdmin::TAO_Notify_SupplierAdmin ( void   ) 

Constructor.

Definition at line 36 of file SupplierAdmin.cpp.

  : TAO_Notify_Admin ()
{
}

TAO_Notify_SupplierAdmin::~TAO_Notify_SupplierAdmin (  )  [virtual]

Destructor.

Definition at line 47 of file SupplierAdmin.cpp.

{
}


Member Function Documentation

void TAO_Notify_SupplierAdmin::_add_ref ( void   )  [virtual]

ServantBase refcount methods.

Definition at line 63 of file SupplierAdmin.cpp.

{
  this->_incr_refcnt ();
}

void TAO_Notify_SupplierAdmin::_remove_ref ( void   )  [virtual]

Definition at line 69 of file SupplierAdmin.cpp.

{
  this->_decr_refcnt ();
}

CosNotifyFilter::FilterID TAO_Notify_SupplierAdmin::add_filter ( CosNotifyFilter::Filter_ptr  new_filter  )  [protected, virtual]

Definition at line 249 of file SupplierAdmin.cpp.

{
  CosNotifyFilter::FilterID fid =
    this->filter_admin_.add_filter (new_filter);
  this->self_change ();
  return fid;
}

void TAO_Notify_SupplierAdmin::destroy ( void   )  [virtual]

TAO_Notify_Container_T requires a destroy method.

Definition at line 82 of file SupplierAdmin.cpp.

{
  this->shutdown ();
  this->ec_->remove (this);
  this->proxy_container ().destroy ();
}

TAO_Notify_ProxyConsumer * TAO_Notify_SupplierAdmin::find_proxy_consumer ( TAO_Notify::IdVec id_path,
size_t  position 
)

Definition at line 282 of file SupplierAdmin.cpp.

{
  TAO_Notify_ProxyConsumer * result = 0;
  size_t path_size = id_path.size ();
  if (position < path_size)
  {
    TAO_Notify_ProxyConsumer_Find_Worker find_worker;
    TAO_Notify_Proxy * proxy = find_worker.find (id_path[position], this->proxy_container());
    result = dynamic_cast <TAO_Notify_ProxyConsumer *> (proxy);
  }
  return result;
}

const char * TAO_Notify_SupplierAdmin::get_admin_type_name ( void   )  const [virtual]

Implements TAO_Notify_Admin.

Definition at line 42 of file SupplierAdmin.cpp.

{
  return "supplier_admin";
}

CosNotifyFilter::FilterIDSeq * TAO_Notify_SupplierAdmin::get_all_filters ( void   )  [protected]

Definition at line 270 of file SupplierAdmin.cpp.

{
  return this->filter_admin_.get_all_filters ();
}

CosNotifyFilter::Filter_ptr TAO_Notify_SupplierAdmin::get_filter ( CosNotifyFilter::FilterID  filter  )  [protected]

Definition at line 264 of file SupplierAdmin.cpp.

{
  return this->filter_admin_.get_filter (filter);
}

CosNotifyChannelAdmin::ProxyConsumer_ptr TAO_Notify_SupplierAdmin::get_proxy_consumer ( CosNotifyChannelAdmin::ProxyID  proxy_id  )  [protected]

Definition at line 221 of file SupplierAdmin.cpp.

{
  TAO_Notify_ProxyConsumer_Find_Worker find_worker;

  return find_worker.resolve (proxy_id, this->proxy_container());
}

CosNotification::QoSProperties * TAO_Notify_SupplierAdmin::get_qos ( void   )  [protected]

Definition at line 149 of file SupplierAdmin.cpp.

{
  return this->TAO_Notify_Object::get_qos ();
}

void TAO_Notify_SupplierAdmin::init ( TAO_Notify_EventChannel ec  ) 

Init.

Definition at line 52 of file SupplierAdmin.cpp.

TAO_Notify::Topology_Object * TAO_Notify_SupplierAdmin::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_Admin.

Definition at line 90 of file SupplierAdmin.cpp.

{
  TAO_Notify::Topology_Object* result = this;
  if (type == "proxy_push_consumer")
  {
    if (DEBUG_LEVEL) ACE_DEBUG ((LM_DEBUG,
      ACE_TEXT ("(%P|%t) Admin reload proxy %d\n")
      , static_cast<int> (id)
      ));
    result = this->load_proxy(id, CosNotifyChannelAdmin::ANY_EVENT, attrs);
  }
  else if (type == "structured_proxy_push_consumer")
  {
    if (DEBUG_LEVEL) ACE_DEBUG ((LM_DEBUG,
      ACE_TEXT ("(%P|%t) Admin reload proxy %d\n")
      , static_cast<int> (id)
      ));
    result = this->load_proxy(id, CosNotifyChannelAdmin::STRUCTURED_EVENT, attrs);
  }
  else if (type == "sequence_proxy_push_consumer")
  {
    if (DEBUG_LEVEL) ACE_DEBUG ((LM_DEBUG,
      ACE_TEXT ("(%P|%t) Admin reload proxy %d\n")
      , static_cast<int> (id)
      ));
    result = this->load_proxy(id, CosNotifyChannelAdmin::SEQUENCE_EVENT, attrs);
  }
  else
  {
    result = TAO_Notify_Admin::load_child (type, id, attrs);
  }
  return result;
}

TAO_Notify::Topology_Object * TAO_Notify_SupplierAdmin::load_proxy ( CORBA::Long  id,
CosNotifyChannelAdmin::ClientType  ctype,
const TAO_Notify::NVPList attrs 
) [protected]

Definition at line 126 of file SupplierAdmin.cpp.

{
  TAO_Notify_Builder* bld = TAO_Notify_PROPERTIES::instance()->builder();
  TAO_Notify_ProxyConsumer * proxy =
    bld->build_proxy (this
               , ctype
               , id);
  ACE_ASSERT(proxy != 0);
  proxy->load_attrs (attrs);
  return proxy;
}

CosNotifyChannelAdmin::EventChannel_ptr TAO_Notify_SupplierAdmin::MyChannel ( void   )  [protected]

Definition at line 201 of file SupplierAdmin.cpp.

{
  return this->ec_->_this ();
}

CosNotifyChannelAdmin::AdminID TAO_Notify_SupplierAdmin::MyID ( void   )  [protected, virtual]

= CosNotifyChannelAdmin::SupplierAdmin methods

Definition at line 195 of file SupplierAdmin.cpp.

{
  return this->id ();
}

CosNotifyChannelAdmin::InterFilterGroupOperator TAO_Notify_SupplierAdmin::MyOperator ( void   )  [protected]

Definition at line 207 of file SupplierAdmin.cpp.

{
  return this->filter_operator_;
}

CosNotifyChannelAdmin::ProxyConsumer_ptr TAO_Notify_SupplierAdmin::obtain_notification_pull_consumer ( CosNotifyChannelAdmin::ClientType  ctype,
CosNotifyChannelAdmin::ProxyID_out  proxy_id 
) [protected]

Definition at line 320 of file SupplierAdmin.cpp.

{
  throw CORBA::NO_IMPLEMENT ();
}

CosNotifyChannelAdmin::ProxyConsumer_ptr TAO_Notify_SupplierAdmin::obtain_notification_push_consumer ( CosNotifyChannelAdmin::ClientType  ctype,
CosNotifyChannelAdmin::ProxyID_out  proxy_id 
) [protected]

Definition at line 155 of file SupplierAdmin.cpp.

{
  CosNotification::QoSProperties initial_qos;

  CosNotifyChannelAdmin::ProxyConsumer_var proxy =
    TAO_Notify_PROPERTIES::instance()->builder()->build_proxy (this
                                                                , ctype
                                                                , proxy_id
                                                                , initial_qos);
  this->self_change ();
  return proxy._retn ();
}

CosNotifyChannelAdmin::ProxyConsumer_ptr TAO_Notify_SupplierAdmin::obtain_notification_push_consumer_with_qos ( CosNotifyChannelAdmin::ClientType  ctype,
CosNotifyChannelAdmin::ProxyID_out  proxy_id,
const CosNotification::QoSProperties initial_qos 
) [protected]

= NotifyExt::SupplierAdmin methods

Definition at line 171 of file SupplierAdmin.cpp.

{
  CosNotifyChannelAdmin::ProxyConsumer_var proxy =
    TAO_Notify_PROPERTIES::instance()->builder()->build_proxy (this
                                                                , ctype
                                                                , proxy_id,
                                                                initial_qos);
  this->self_change ();
  return proxy._retn ();
}

CosEventChannelAdmin::ProxyPullConsumer_ptr TAO_Notify_SupplierAdmin::obtain_pull_consumer ( void   )  [protected]

Definition at line 300 of file SupplierAdmin.cpp.

{
  throw CORBA::NO_IMPLEMENT ();
}

CosEventChannelAdmin::ProxyPushConsumer_ptr TAO_Notify_SupplierAdmin::obtain_push_consumer ( void   )  [protected]

Definition at line 186 of file SupplierAdmin.cpp.

{
  CosEventChannelAdmin::ProxyPushConsumer_var proxy =
    TAO_Notify_PROPERTIES::instance()->builder()->build_proxy (this);
  this->self_change ();
  return proxy._retn ();
}

void TAO_Notify_SupplierAdmin::offer_change ( const CosNotification::EventTypeSeq added,
const CosNotification::EventTypeSeq removed 
) [protected, virtual]

Definition at line 229 of file SupplierAdmin.cpp.

{
  TAO_Notify_EventTypeSeq seq_added (added);
  TAO_Notify_EventTypeSeq seq_removed (removed);

  {
    ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
                        CORBA::INTERNAL ());

    this->subscribed_types_.add_and_remove (seq_added, seq_removed);

    TAO_Notify_Subscription_Change_Worker worker (added, removed);

    this->proxy_container().collection ()->for_each (&worker);
  }
}

CosNotifyChannelAdmin::ProxyIDSeq * TAO_Notify_SupplierAdmin::pull_consumers ( void   )  [protected]

Definition at line 306 of file SupplierAdmin.cpp.

{
  throw CORBA::NO_IMPLEMENT ();
}

CosNotifyChannelAdmin::ProxyIDSeq * TAO_Notify_SupplierAdmin::push_consumers ( void   )  [protected]

Definition at line 213 of file SupplierAdmin.cpp.

{
  TAO_Notify_Proxy_Seq_Worker seq_worker;

  return seq_worker.create (this->proxy_container());
}

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

Release.

Definition at line 75 of file SupplierAdmin.cpp.

{
  delete this;
  //@@ inform factory
}

void TAO_Notify_SupplierAdmin::remove_all_filters ( void   )  [protected, virtual]

Definition at line 276 of file SupplierAdmin.cpp.

void TAO_Notify_SupplierAdmin::remove_filter ( CosNotifyFilter::FilterID  filter  )  [protected, virtual]

Definition at line 258 of file SupplierAdmin.cpp.

{
  this->filter_admin_.remove_filter (filter);
}

void TAO_Notify_SupplierAdmin::set_qos ( const CosNotification::QoSProperties qos  )  [protected, virtual]

Definition at line 143 of file SupplierAdmin.cpp.

{
  this->TAO_Notify_Object::set_qos (qos);
}

void TAO_Notify_SupplierAdmin::validate_qos ( const CosNotification::QoSProperties required_qos,
CosNotification::NamedPropertyRangeSeq_out  available_qos 
) [protected, virtual]

Definition at line 313 of file SupplierAdmin.cpp.

{
  throw CORBA::NO_IMPLEMENT ();
}


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines