TAO_Notify_SequenceProxyPushConsumer Class Reference

#include <SequenceProxyPushConsumer.h>

Inheritance diagram for TAO_Notify_SequenceProxyPushConsumer:

Inheritance graph
[legend]
Collaboration diagram for TAO_Notify_SequenceProxyPushConsumer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 TAO_Notify_SequenceProxyPushConsumer (void)
 Constuctor.

virtual ~TAO_Notify_SequenceProxyPushConsumer ()
 Destructor.

virtual const char * get_proxy_type_name (void) const
virtual void load_attrs (const TAO_Notify::NVPList &attrs)

Protected Member Functions

virtual CosNotifyChannelAdmin::ProxyType MyType (void)
 = Protected Methods

virtual void connect_sequence_push_supplier (CosNotifyComm::SequencePushSupplier_ptr push_supplier)
virtual void push_structured_events (const CosNotification::EventBatch &notifications)
virtual void disconnect_sequence_push_consumer (void)

Protected Attributes

TAO_Notify_Property_Time pacing_interval_
 = Data Members


Private Types

typedef TAO_Notify_ProxyConsumer_T<
POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer > 
SuperClass

Private Member Functions

virtual void release (void)
 TAO_Notify_Destroy_Callback methods.


Friends

class TAO_Notify_Builder

Member Typedef Documentation

typedef TAO_Notify_ProxyConsumer_T<POA_CosNotifyChannelAdmin::SequenceProxyPushConsumer> TAO_Notify_SequenceProxyPushConsumer::SuperClass [private]
 

Definition at line 43 of file SequenceProxyPushConsumer.h.


Constructor & Destructor Documentation

TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Notify_SequenceProxyPushConsumer::TAO_Notify_SequenceProxyPushConsumer void   ) 
 

Constuctor.

Definition at line 15 of file SequenceProxyPushConsumer.cpp.

00016 :pacing_interval_ (CosNotification::PacingInterval)
00017 {
00018 }

TAO_Notify_SequenceProxyPushConsumer::~TAO_Notify_SequenceProxyPushConsumer  )  [virtual]
 

Destructor.

Definition at line 20 of file SequenceProxyPushConsumer.cpp.

00021 {
00022 }


Member Function Documentation

void TAO_Notify_SequenceProxyPushConsumer::connect_sequence_push_supplier CosNotifyComm::SequencePushSupplier_ptr  push_supplier  )  [protected, virtual]
 

Definition at line 38 of file SequenceProxyPushConsumer.cpp.

References ACE_NEW_THROW_EX, TAO_Notify_ProxyConsumer::connect(), TAO_Notify_SequencePushSupplier::init(), and TAO_Notify::Topology_Object::self_change().

Referenced by load_attrs().

00039 {
00040   // Convert Supplier to Base Type
00041   TAO_Notify_SequencePushSupplier *supplier;
00042   ACE_NEW_THROW_EX (supplier,
00043                     TAO_Notify_SequencePushSupplier (this),
00044                     CORBA::NO_MEMORY ());
00045 
00046   supplier->init (push_supplier);
00047 
00048   this->connect (supplier);
00049   this->self_change ();
00050 }

void TAO_Notify_SequenceProxyPushConsumer::disconnect_sequence_push_consumer void   )  [protected, virtual]
 

Definition at line 74 of file SequenceProxyPushConsumer.cpp.

References TAO_Notify_ProxyConsumer::destroy(), and TAO_Notify::Topology_Object::self_change().

00075 {
00076   TAO_Notify_SequenceProxyPushConsumer::Ptr guard( this );
00077   this->destroy ();
00078   this->self_change ();
00079 }

const char * TAO_Notify_SequenceProxyPushConsumer::get_proxy_type_name void   )  const [virtual]
 

Implements TAO_Notify_Proxy.

Definition at line 82 of file SequenceProxyPushConsumer.cpp.

00083 {
00084   return "sequence_proxy_push_consumer";
00085 }

void TAO_Notify_SequenceProxyPushConsumer::load_attrs const TAO_Notify::NVPList attrs  )  [virtual]
 

Load our attributes. Each derived type should call the superclass load first before loading its own attributes.

Reimplemented from TAO_Notify_Object.

Definition at line 88 of file SequenceProxyPushConsumer.cpp.

References ACE_ASSERT, ACE_CString, connect_sequence_push_supplier(), TAO_Notify_Properties::instance(), TAO_Notify::NVPList::load(), and TAO_Notify_Properties::orb().

00089 {
00090   SuperClass::load_attrs(attrs);
00091   ACE_CString ior;
00092   if (attrs.load("PeerIOR", ior))
00093   {
00094     CORBA::ORB_var orb = TAO_Notify_PROPERTIES::instance()->orb();
00095     try
00096     {
00097       CosNotifyComm::SequencePushSupplier_var ps = CosNotifyComm::SequencePushSupplier::_nil();
00098       if ( ior.length() > 0 )
00099       {
00100         CORBA::Object_var obj = orb->string_to_object(ior.c_str());
00101         ps = CosNotifyComm::SequencePushSupplier::_unchecked_narrow(obj.in());
00102       }
00103       // minor hack: suppress generating subscription updates during reload.
00104       bool save_updates = this->updates_off_;
00105       this->updates_off_ = true;
00106       this->connect_sequence_push_supplier(ps.in());
00107       this->updates_off_ = save_updates;
00108     }
00109     catch (const CORBA::Exception&)
00110     {
00111       ACE_ASSERT(0);
00112     }
00113   }
00114 }

CosNotifyChannelAdmin::ProxyType TAO_Notify_SequenceProxyPushConsumer::MyType void   )  [protected, virtual]
 

= Protected Methods

Definition at line 32 of file SequenceProxyPushConsumer.cpp.

00033 {
00034   return CosNotifyChannelAdmin::PUSH_SEQUENCE;
00035 }

void TAO_Notify_SequenceProxyPushConsumer::push_structured_events const CosNotification::EventBatch notifications  )  [protected, virtual]
 

Definition at line 53 of file SequenceProxyPushConsumer.cpp.

References TAO_Notify_Object::admin_properties(), CosNotification::EventBatch, TAO_Notify_ProxyConsumer::is_connected(), TAO_Notify_ProxyConsumer::push_i(), TAO_Notify_AdminProperties::queue_full(), and TAO_Notify_AdminProperties::reject_new_events().

00054 {
00055   // Check if we should proceed at all.
00056   if (this->admin_properties().reject_new_events () == 1 && this->admin_properties().queue_full ())
00057     throw CORBA::IMP_LIMIT ();
00058 
00059   if (this->is_connected () == 0)
00060     {
00061       throw CosEventComm::Disconnected ();
00062     }
00063 
00064   for (CORBA::ULong i = 0; i < event_batch.length (); ++i)
00065     {
00066       const CosNotification::StructuredEvent& notification = event_batch[i];
00067 
00068       TAO_Notify_StructuredEvent_No_Copy event (notification);
00069       this->push_i (&event);
00070     }
00071 }

void TAO_Notify_SequenceProxyPushConsumer::release void   )  [private, virtual]
 

TAO_Notify_Destroy_Callback methods.

Implements TAO_Notify_Refcountable.

Definition at line 25 of file SequenceProxyPushConsumer.cpp.

00026 {
00027   delete this;
00028   //@@ inform factory
00029 }


Friends And Related Function Documentation

friend class TAO_Notify_Builder [friend]
 

Reimplemented from TAO_Notify_Object.

Definition at line 44 of file SequenceProxyPushConsumer.h.


Member Data Documentation

TAO_Notify_Property_Time TAO_Notify_SequenceProxyPushConsumer::pacing_interval_ [protected]
 

= Data Members

Definition at line 58 of file SequenceProxyPushConsumer.h.


The documentation for this class was generated from the following files:
Generated on Sun Jan 27 15:51:13 2008 for TAO_CosNotification by doxygen 1.3.6