#include <PushConsumer.h>
Inheritance diagram for TAO_Notify_PushConsumer:


Public Member Functions | |
| TAO_Notify_PushConsumer (TAO_Notify_ProxySupplier *proxy) | |
| Constuctor. | |
| virtual | ~TAO_Notify_PushConsumer () |
| Destructor. | |
| void | init (CosEventComm::PushConsumer_ptr push_consumer) |
| Init. | |
| virtual void | push (const CORBA::Any &event) |
| Push to this consumer. | |
| virtual void | push (const CosNotification::StructuredEvent &event) |
| Push to this consumer. | |
| virtual void | push (const CosNotification::EventBatch &event) |
| Push a batch of events to this consumer. | |
| virtual ACE_CString | get_ior (void) const |
| Retrieve the ior of this peer. | |
| virtual void | reconnect_from_consumer (TAO_Notify_Consumer *old_consumer) |
Protected Attributes | |
| CosEventComm::PushConsumer_var | push_consumer_ |
| The Consumer. | |
Private Member Functions | |
| virtual void | release (void) |
| TAO_Notify_Destroy_Callback methods. | |
Definition at line 33 of file PushConsumer.h.
|
|
Constuctor.
Definition at line 16 of file PushConsumer.cpp.
00017 :TAO_Notify_Consumer (proxy) 00018 { 00019 } |
|
|
Destructor.
Definition at line 21 of file PushConsumer.cpp.
00022 {
00023 }
|
|
|
Retrieve the ior of this peer.
Implements TAO_Notify_Peer. Definition at line 87 of file PushConsumer.cpp. References ACE_CATCHANY, ACE_CString, ACE_DECLARE_NEW_CORBA_ENV, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_TRY, ACE_TRY_CHECK, and TAO_Singleton< TYPE, ACE_LOCK >::instance().
00088 {
00089 ACE_CString result;
00090 CORBA::ORB_var orb = TAO_Notify_PROPERTIES::instance()->orb();
00091 ACE_DECLARE_NEW_CORBA_ENV;
00092 ACE_TRY
00093 {
00094 CORBA::String_var ior = orb->object_to_string(this->push_consumer_.in() ACE_ENV_ARG_PARAMETER);
00095 ACE_TRY_CHECK;
00096 result = static_cast<const char*> (ior.in ());
00097 }
00098 ACE_CATCHANY
00099 {
00100 result.fast_clear();
00101 }
00102 ACE_ENDTRY;
00103 return result;
00104 }
|
|
|
Init.
Definition at line 26 of file PushConsumer.cpp. References ACE_ASSERT, ACE_CATCHANY, ACE_ENDTRY, ACE_ENV_ARG_PARAMETER, ACE_THROW, ACE_TRY, ACE_TRY_CHECK, CORBA::is_nil(), and push_consumer_. Referenced by TAO_Notify_ProxyPushSupplier::connect_any_push_consumer(), TAO_Notify_CosEC_ProxyPushSupplier::connect_push_consumer(), and reconnect_from_consumer().
00028 {
00029 // Initialize only once
00030 ACE_ASSERT( CORBA::is_nil (this->push_consumer_.in()) );
00031
00032 // push_consumer not optional
00033 if (CORBA::is_nil (push_consumer))
00034 {
00035 ACE_THROW (CORBA::BAD_PARAM());
00036 }
00037
00038 this->push_consumer_ = CosEventComm::PushConsumer::_duplicate (push_consumer);
00039
00040 ACE_TRY
00041 {
00042 this->publish_ =
00043 CosNotifyComm::NotifyPublish::_narrow (push_consumer
00044 ACE_ENV_ARG_PARAMETER);
00045 ACE_TRY_CHECK;
00046 }
00047 ACE_CATCHANY
00048 {
00049 // _narrow failed which probably means the interface is CosEventComm type.
00050 }
00051 ACE_ENDTRY;
00052 }
|
|
|
Push a batch of events to this consumer.
Implements TAO_Notify_Consumer. Definition at line 79 of file PushConsumer.cpp. References ACE_ASSERT, and CosNotification::EventBatch.
00080 {
00081 ACE_ASSERT(false);
00082 ACE_UNUSED_ARG (event);
00083 // TODO exception?
00084 }
|
|
|
Push to this consumer.
Implements TAO_Notify_Consumer. Definition at line 68 of file PushConsumer.cpp. References ACE_ENV_ARG_PARAMETER, push_consumer_, and TAO_Notify_Event::translate().
00069 {
00070 CORBA::Any any;
00071
00072 TAO_Notify_Event::translate (event, any);
00073
00074 this->push_consumer_->push (any ACE_ENV_ARG_PARAMETER);
00075 }
|
|
|
Push to this consumer.
Implements TAO_Notify_Consumer. Definition at line 62 of file PushConsumer.cpp. References ACE_ENV_ARG_PARAMETER, and push_consumer_.
00063 {
00064 this->push_consumer_->push (payload ACE_ENV_ARG_PARAMETER);
00065 }
|
|
|
on reconnect we need to move events from the old consumer to the new one Implements TAO_Notify_Consumer. Definition at line 107 of file PushConsumer.cpp. References ACE_ASSERT, ACE_CHECK, ACE_ENV_ARG_PARAMETER, init(), push_consumer_, and TAO_Notify_Consumer::schedule_timer().
00109 {
00110 TAO_Notify_PushConsumer* tmp =
00111 dynamic_cast<TAO_Notify_PushConsumer*> (old_consumer);
00112 ACE_ASSERT(tmp != 0);
00113 this->init(tmp->push_consumer_.in() ACE_ENV_ARG_PARAMETER);
00114 ACE_CHECK;
00115 this->schedule_timer(false);
00116 }
|
|
|
TAO_Notify_Destroy_Callback methods.
Implements TAO_Notify_Peer. Definition at line 55 of file PushConsumer.cpp.
00056 {
00057 delete this;
00058 //@@ inform factory
00059 }
|
|
|
The Consumer.
Definition at line 68 of file PushConsumer.h. Referenced by init(), push(), and reconnect_from_consumer(). |
1.3.6