Base class proxy for all proxys in NS. More...
#include <Proxy.h>


Public Types | |
| typedef TAO_Notify_Refcountable_Guard_T < TAO_Notify_Proxy > | Ptr |
| typedef CosNotifyChannelAdmin::ProxyIDSeq | SEQ |
| typedef CosNotifyChannelAdmin::ProxyIDSeq_var | SEQ_VAR |
Public Member Functions | |
| TAO_Notify_Proxy (void) | |
| Constructor. | |
| virtual | ~TAO_Notify_Proxy () |
| Destructor. | |
| virtual CORBA::Object_ptr | activate (PortableServer::Servant servant) |
| Activate. | |
| virtual CORBA::Object_ptr | activate (PortableServer::Servant servant, CORBA::Long id) |
| Activate with a given ID. | |
| void | deactivate (void) |
| Deactivate. | |
| void | subscribed_types (TAO_Notify_EventTypeSeq &subscribed_types) |
| Obtain the Proxy's subscribed types. | |
| CORBA::Boolean | check_filters (const TAO_Notify_Event *event, TAO_Notify_FilterAdmin &parent_filter_admin, CosNotifyChannelAdmin::InterFilterGroupOperator filter_operator) |
| Check if this event passes the admin and proxy filters. | |
| void | types_changed (const TAO_Notify_EventTypeSeq &added, const TAO_Notify_EventTypeSeq &removed) |
| Inform this proxy that the following types are being advertised. | |
| CORBA::Boolean | updates_off (void) |
| Have updates been turned off. | |
| virtual void | destroy (void)=0 |
| Destroy this object. | |
| virtual TAO_Notify_Peer * | peer (void)=0 |
| Access our Peer. | |
| virtual CosNotification::EventTypeSeq * | obtain_types (CosNotifyChannelAdmin::ObtainInfoMode mode, const TAO_Notify_EventTypeSeq &types) |
| Implement the Obtain Types. | |
| virtual void | admin_types_changed (const CosNotification::EventTypeSeq &added, const CosNotification::EventTypeSeq &removed)=0 |
| Notification of subscriptions/offers set at the admin. | |
| virtual void | qos_changed (const TAO_Notify_QoSProperties &qos_properties) |
| Override, TAO_Notify_Object::qos_changed. | |
| virtual void | save_persistent (TAO_Notify::Topology_Saver &saver) |
| virtual void | save_attrs (TAO_Notify::NVPList &attrs) |
| virtual const char * | get_proxy_type_name (void) const =0 |
| 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. | |
| virtual void | validate ()=0 |
Protected Attributes | |
| TAO_Notify_FilterAdmin | filter_admin_ |
| Filter Administration. | |
| TAO_Notify_EventTypeSeq | subscribed_types_ |
| The types that we're subscribed with the event manager. | |
| CORBA::Boolean | updates_off_ |
| True if updates have been turned off. | |
Friends | |
| class | TAO_Notify_Peer |
Base class proxy for all proxys in NS.
Definition at line 38 of file Proxy.h.
Reimplemented in TAO_Notify_ProxyConsumer, and TAO_Notify_ProxySupplier.
| typedef CosNotifyChannelAdmin::ProxyIDSeq_var TAO_Notify_Proxy::SEQ_VAR |
| TAO_Notify_Proxy::TAO_Notify_Proxy | ( | void | ) |
| TAO_Notify_Proxy::~TAO_Notify_Proxy | ( | ) | [virtual] |
| CORBA::Object_ptr TAO_Notify_Proxy::activate | ( | PortableServer::Servant | servant | ) | [virtual] |
Activate.
Reimplemented in TAO_Notify_RT_StructuredProxyPushSupplier.
Definition at line 31 of file Proxy.cpp.
{
// Set the POA that we use to return our <ref>
this->set_primary_as_proxy_poa();
return TAO_Notify_Object::activate (servant);
}
| CORBA::Object_ptr TAO_Notify_Proxy::activate | ( | PortableServer::Servant | servant, | |
| CORBA::Long | id | |||
| ) | [virtual] |
Activate with a given ID.
Reimplemented in TAO_Notify_RT_StructuredProxyPushSupplier.
Definition at line 39 of file Proxy.cpp.
{
// Set the POA that we use to return our <ref>
this->set_primary_as_proxy_poa();
return TAO_Notify_Object::activate (servant, id);
}
| virtual void TAO_Notify_Proxy::admin_types_changed | ( | const CosNotification::EventTypeSeq & | added, | |
| const CosNotification::EventTypeSeq & | removed | |||
| ) | [pure virtual] |
Notification of subscriptions/offers set at the admin.
Implemented in TAO_Notify_ProxyConsumer_T< SERVANT_TYPE >, TAO_Notify_ProxySupplier_T< SERVANT_TYPE >, TAO_Notify_ProxyConsumer_T< POA_CosNotifyChannelAdmin::ProxyPushConsumer >, TAO_Notify_ProxyConsumer_T< POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer >, TAO_Notify_ProxyConsumer_T< POA_CosEventChannelAdmin::ProxyPushConsumer >, TAO_Notify_ProxyConsumer_T< POA_CosNotifyChannelAdmin::StructuredProxyPushConsumer >, TAO_Notify_ProxySupplier_T< POA_Event_Forwarder::ProxyPushSupplier >, TAO_Notify_ProxySupplier_T< POA_CosNotifyChannelAdmin::SequenceProxyPushSupplier >, TAO_Notify_ProxySupplier_T< POA_Event_Forwarder::StructuredProxyPushSupplier >, and TAO_Notify_ProxySupplier_T< POA_CosEventChannelAdmin::ProxyPushSupplier >.
| CORBA::Boolean TAO_Notify_Proxy::check_filters | ( | const TAO_Notify_Event * | event, | |
| TAO_Notify_FilterAdmin & | parent_filter_admin, | |||
| CosNotifyChannelAdmin::InterFilterGroupOperator | filter_operator | |||
| ) |
Check if this event passes the admin and proxy filters.
Definition at line 14 of file Proxy.inl.
{
// check if it passes the parent filter.
CORBA::Boolean const parent_val =
parent_filter_admin.match (event);
CORBA::Boolean val = false;
if (filter_operator == CosNotifyChannelAdmin::AND_OP)
{
val = parent_val && this->filter_admin_.match (event);
}
else
{
val = parent_val || this->filter_admin_.match (event);
}
return val;
}
| void TAO_Notify_Proxy::deactivate | ( | void | ) |
Deactivate.
Definition at line 48 of file Proxy.cpp.
{
ACE_ASSERT (this->proxy_poa() != 0 );
this->proxy_poa()->deactivate (this->id());
}
| virtual void TAO_Notify_Proxy::destroy | ( | void | ) | [pure virtual] |
Destroy this object.
Implemented in TAO_Notify_ProxyConsumer, and TAO_Notify_ProxySupplier.
| virtual const char* TAO_Notify_Proxy::get_proxy_type_name | ( | void | ) | const [pure virtual] |
Implemented in TAO_Notify_CosEC_ProxyPushConsumer, TAO_Notify_CosEC_ProxyPushSupplier, TAO_Notify_ProxyPushConsumer, TAO_Notify_ProxyPushSupplier, TAO_Notify_SequenceProxyPushConsumer, TAO_Notify_SequenceProxyPushSupplier, TAO_Notify_StructuredProxyPushConsumer, and TAO_Notify_StructuredProxyPushSupplier.
| TAO_Notify::Topology_Object * TAO_Notify_Proxy::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.
Definition at line 167 of file Proxy.cpp.
{
ACE_UNUSED_ARG (id);
ACE_UNUSED_ARG (attrs);
TAO_Notify::Topology_Object* result = this;
if (type == "subscriptions")
{
// since we initialized our subscribed types to everything
// in the constructor. we have to clear it out first.
this->subscribed_types_.reset();
result = &this->subscribed_types_;
}
else if (type == "filter_admin")
{
result = & this->filter_admin_;
}
return result;
}
| CosNotification::EventTypeSeq * TAO_Notify_Proxy::obtain_types | ( | CosNotifyChannelAdmin::ObtainInfoMode | mode, | |
| const TAO_Notify_EventTypeSeq & | types | |||
| ) | [virtual] |
Implement the Obtain Types.
Definition at line 85 of file Proxy.cpp.
{
CosNotification::EventTypeSeq_var event_type_seq;
ACE_NEW_THROW_EX (event_type_seq,
CosNotification::EventTypeSeq (),
CORBA::NO_MEMORY ());
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_, CORBA::INTERNAL ());
if (mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_OFF ||
mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON)
{
types.populate (event_type_seq);
}
if (mode == CosNotifyChannelAdmin::NONE_NOW_UPDATES_ON ||
mode == CosNotifyChannelAdmin::ALL_NOW_UPDATES_ON)
{
this->updates_off_ = 0;
}
else
{
this->updates_off_ = 1;
}
return event_type_seq._retn ();
}
| virtual TAO_Notify_Peer* TAO_Notify_Proxy::peer | ( | void | ) | [pure virtual] |
Access our Peer.
Implemented in TAO_Notify_ProxyConsumer, and TAO_Notify_ProxySupplier.
| void TAO_Notify_Proxy::qos_changed | ( | const TAO_Notify_QoSProperties & | qos_properties | ) | [virtual] |
Override, TAO_Notify_Object::qos_changed.
Reimplemented in TAO_Notify_ProxySupplier.
Definition at line 115 of file Proxy.cpp.
{
//Inform Peers of qos changes.
TAO_Notify_Peer* peer = this->peer ();
if (peer != 0)
peer->qos_changed (qos_properties);
}
| void TAO_Notify_Proxy::save_attrs | ( | TAO_Notify::NVPList & | attrs | ) | [virtual] |
Definition at line 156 of file Proxy.cpp.
{
TAO_Notify_Object::save_attrs(attrs);
TAO_Notify_Peer * peer = this->peer();
if (peer != 0)
{
attrs.push_back (TAO_Notify::NVP("PeerIOR", peer->get_ior()));
}
}
| void TAO_Notify_Proxy::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.
Definition at line 125 of file Proxy.cpp.
{
bool changed = this->children_changed_;
this->children_changed_ = false;
this->self_changed_ = false;
if (is_persistent ())
{
TAO_Notify::NVPList attrs;
this->save_attrs(attrs);
const char * type_name = this->get_proxy_type_name ();
bool want_all_children = saver.begin_object(this->id(), type_name, attrs, changed);
if (want_all_children || this->filter_admin_.is_changed ())
{
this->filter_admin_.save_persistent(saver);
}
if (want_all_children || this->subscribed_types_.is_changed ())
{
this->subscribed_types_.save_persistent(saver);
}
// todo: handle removed children
saver.end_object(this->id(), type_name);
}
}
| void TAO_Notify_Proxy::subscribed_types | ( | TAO_Notify_EventTypeSeq & | subscribed_types | ) |
Obtain the Proxy's subscribed types.
Definition at line 55 of file Proxy.cpp.
{
ACE_GUARD_THROW_EX (TAO_SYNCH_MUTEX, ace_mon, this->lock_,
CORBA::INTERNAL ());
// copy
subscribed_types = this->subscribed_types_;
}
| void TAO_Notify_Proxy::types_changed | ( | const TAO_Notify_EventTypeSeq & | added, | |
| const TAO_Notify_EventTypeSeq & | removed | |||
| ) |
Inform this proxy that the following types are being advertised.
Definition at line 65 of file Proxy.cpp.
{
// return if the updates for this proxy are turned off or
// if all the updates in the channel are switched off.
if (this->updates_off_ == 1 || TAO_Notify_PROPERTIES::instance()->updates () == 0)
return;
TAO_Notify_Method_Request_Updates_No_Copy request (added, removed, this);
if (TAO_Notify_PROPERTIES::instance()->asynch_updates () == 1) // if we should send the updates synchronously.
{
this->execute_task (request);
}
else // execute in the current thread context.
{
request.execute ();
}
}
| CORBA::Boolean TAO_Notify_Proxy::updates_off | ( | void | ) |
Have updates been turned off.
Definition at line 8 of file Proxy.inl.
{
return this->updates_off_;
}
| virtual void TAO_Notify_Proxy::validate | ( | ) | [pure virtual] |
Implemented in TAO_Notify_CosEC_ProxyPushConsumer, TAO_Notify_CosEC_ProxyPushSupplier, TAO_Notify_ProxyPushConsumer, TAO_Notify_ProxyPushSupplier, TAO_Notify_SequenceProxyPushConsumer, TAO_Notify_SequenceProxyPushSupplier, TAO_Notify_StructuredProxyPushConsumer, and TAO_Notify_StructuredProxyPushSupplier.
friend class TAO_Notify_Peer [friend] |
CORBA::Boolean TAO_Notify_Proxy::updates_off_ [protected] |
1.7.0