#include <CEC_Reactive_SupplierControl.h>
Public Member Functions | |
TAO_CEC_Reactive_SupplierControl (const ACE_Time_Value &rate, const ACE_Time_Value &timeout, unsigned int retries, TAO_CEC_EventChannel *event_channel, CORBA::ORB_ptr orb) | |
virtual | ~TAO_CEC_Reactive_SupplierControl (void) |
Constructor for the typed ec. | |
void | handle_timeout (const ACE_Time_Value &tv, const void *arg) |
Receive the timeout from the adapter. | |
virtual int | activate (void) |
virtual int | shutdown (void) |
virtual void | supplier_not_exist (TAO_CEC_ProxyPushConsumer *proxy) |
virtual void | supplier_not_exist (TAO_CEC_ProxyPullConsumer *proxy) |
virtual void | system_exception (TAO_CEC_ProxyPullConsumer *proxy, CORBA::SystemException &) |
Some system exception was rasied while trying to push an event. | |
virtual bool | need_to_disconnect (PortableServer::ServantBase *proxy) |
virtual void | successful_transmission (PortableServer::ServantBase *proxy) |
Allow others to inform us when a send or receive was successful. | |
Private Member Functions | |
void | query_suppliers (void) |
Private Attributes | |
ACE_Time_Value | rate_ |
The polling rate. | |
ACE_Time_Value | timeout_ |
The polling timeout. | |
unsigned int | retries_ |
The number of retries per proxy until it is disconnected. | |
TAO_CEC_SupplierControl_Adapter | adapter_ |
The Adapter for the reactor events. | |
TAO_CEC_EventChannel * | event_channel_ |
The event channel. | |
CORBA::ORB_var | orb_ |
The typed event channel. | |
CORBA::PolicyCurrent_var | policy_current_ |
To control the timeout policy in the thread. | |
CORBA::PolicyList | policy_list_ |
Precomputed policy list to the set timeout. | |
ACE_Reactor * | reactor_ |
The ORB reactor. | |
long | timer_id_ |
The timer id. |
Defines the interface for the supplier control strategy. This strategy handles misbehaving or failing suppliers. = MEMORY MANAGMENT = LOCKING = TODO
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_CEC_Reactive_SupplierControl::TAO_CEC_Reactive_SupplierControl | ( | const ACE_Time_Value & | rate, | |
const ACE_Time_Value & | timeout, | |||
unsigned int | retries, | |||
TAO_CEC_EventChannel * | event_channel, | |||
CORBA::ORB_ptr | orb | |||
) |
Constructor. It does not assume ownership of the <event_channel> parameter.
TAO_CEC_Reactive_SupplierControl::~TAO_CEC_Reactive_SupplierControl | ( | void | ) | [virtual] |
Constructor for the typed ec.
destructor...
int TAO_CEC_Reactive_SupplierControl::activate | ( | void | ) | [virtual] |
Activate any internal threads or timers used to poll the state of the suppliers
Reimplemented from TAO_CEC_SupplierControl.
void TAO_CEC_Reactive_SupplierControl::handle_timeout | ( | const ACE_Time_Value & | tv, | |
const void * | arg | |||
) |
Receive the timeout from the adapter.
bool TAO_CEC_Reactive_SupplierControl::need_to_disconnect | ( | PortableServer::ServantBase * | proxy | ) | [virtual] |
Do we need to disconnect this supplier? The parameter type for proxy is PortableServer::ServantBase* due to the fact that this method will be used for TAO_CEC_ProxyPushSupplier's and TAO_CEC_ProxyPullSupplier's.
Reimplemented from TAO_CEC_SupplierControl.
void TAO_CEC_Reactive_SupplierControl::query_suppliers | ( | void | ) | [private] |
Check if the suppliers still exists. It is a helper method for handle_timeout() to isolate the exceptions.
int TAO_CEC_Reactive_SupplierControl::shutdown | ( | void | ) | [virtual] |
Reimplemented from TAO_CEC_SupplierControl.
void TAO_CEC_Reactive_SupplierControl::successful_transmission | ( | PortableServer::ServantBase * | proxy | ) | [virtual] |
Allow others to inform us when a send or receive was successful.
Reimplemented from TAO_CEC_SupplierControl.
void TAO_CEC_Reactive_SupplierControl::supplier_not_exist | ( | TAO_CEC_ProxyPullConsumer * | proxy | ) | [virtual] |
Invoked by helper classes when they detect that a supplier does not exists (i.e. _non_existent() returns true and/or the CORBA::OBJECT_NOT_EXIST exception has been raised).
Reimplemented from TAO_CEC_SupplierControl.
void TAO_CEC_Reactive_SupplierControl::supplier_not_exist | ( | TAO_CEC_ProxyPushConsumer * | proxy | ) | [virtual] |
Invoked by helper classes when they detect that a supplier does not exists (i.e. _non_existent() returns true and/or the CORBA::OBJECT_NOT_EXIST exception has been raised).
Reimplemented from TAO_CEC_SupplierControl.
void TAO_CEC_Reactive_SupplierControl::system_exception | ( | TAO_CEC_ProxyPullConsumer * | proxy, | |
CORBA::SystemException & | ||||
) | [virtual] |
Some system exception was rasied while trying to push an event.
Reimplemented from TAO_CEC_SupplierControl.
The Adapter for the reactor events.
The event channel.
The typed event channel.
The ORB
CORBA::PolicyCurrent_var TAO_CEC_Reactive_SupplierControl::policy_current_ [private] |
To control the timeout policy in the thread.
CORBA::PolicyList TAO_CEC_Reactive_SupplierControl::policy_list_ [private] |
Precomputed policy list to the set timeout.
The polling rate.
The ORB reactor.
unsigned int TAO_CEC_Reactive_SupplierControl::retries_ [private] |
The number of retries per proxy until it is disconnected.
The polling timeout.
long TAO_CEC_Reactive_SupplierControl::timer_id_ [private] |
The timer id.