#include <Consumer.h>
Inheritance diagram for TAO_Notify_Consumer:
Public Types | |
DISPATCH_SUCCESS | |
DISPATCH_RETRY | |
DISPATCH_DISCARD | |
DISPATCH_FAIL | |
enum | DispatchStatus { DISPATCH_SUCCESS, DISPATCH_RETRY, DISPATCH_DISCARD, DISPATCH_FAIL } |
Status returned from dispatch attempts. More... | |
Public Member Functions | |
TAO_Notify_Consumer (TAO_Notify_ProxySupplier *proxy) | |
Constuctor. | |
virtual | ~TAO_Notify_Consumer () |
Destructor. | |
TAO_Notify_ProxySupplier * | proxy_supplier (void) |
Access Specific Proxy. | |
virtual TAO_Notify_Proxy * | proxy (void) |
Access Base Proxy. | |
void | deliver (TAO_Notify_Method_Request_Event *request) |
Dispatch Event to consumer. | |
virtual void | push (const CORBA::Any &event)=0 |
Push <event> to this consumer. | |
virtual void | push (const CosNotification::StructuredEvent &event)=0 |
Push <event> to this consumer. | |
virtual void | push (const CosNotification::EventBatch &event)=0 |
Push a batch of events to this consumer. | |
DispatchStatus | dispatch_batch (const CosNotification::EventBatch &batch) |
Dispatch the batch of events to the attached consumer. | |
void | dispatch_pending (void) |
Dispatch the pending events. | |
CORBA::Boolean | is_suspended (void) |
Is the connection suspended? | |
void | suspend (void) |
Suspend Connection. | |
void | resume (void) |
Resume Connection. | |
virtual void | shutdown (void) |
Shutdown the consumer. | |
virtual void | reconnect_from_consumer (TAO_Notify_Consumer *old_consumer)=0 |
virtual void | qos_changed (const TAO_Notify_QoSProperties &qos_properties) |
Override, Peer::qos_changed. | |
Protected Types | |
typedef ACE_Unbounded_Queue< TAO_Notify_Method_Request_Event_Queueable * > | Request_Queue |
Protected Member Functions | |
DispatchStatus | dispatch_request (TAO_Notify_Method_Request_Event *request) |
virtual bool | dispatch_from_queue (Request_Queue &requests, ACE_Guard< TAO_SYNCH_MUTEX > &ace_mon) |
Attempt to dispatch event from a queue. | |
void | enqueue_request (TAO_Notify_Method_Request_Event *request) |
virtual bool | enqueue_if_necessary (TAO_Notify_Method_Request_Event *request) |
virtual void | dispatch_updates_i (const CosNotification::EventTypeSeq &added, const CosNotification::EventTypeSeq &removed) |
Implementation of Peer specific dispatch_updates. | |
TAO_SYNCH_MUTEX * | proxy_lock (void) |
Get the shared Proxy Lock. | |
virtual int | handle_timeout (const ACE_Time_Value ¤t_time, const void *act=0) |
void | schedule_timer (bool is_error=false) |
Schedule timer. | |
void | cancel_timer (void) |
Cancel timer. | |
Request_Queue & | pending_events () |
= Protected Data Members | |
Protected Attributes | |
TAO_Notify_ProxySupplier * | proxy_ |
The Proxy that we associate with. | |
CORBA::Boolean | is_suspended_ |
Suspended Flag. | |
CosNotifyComm::NotifyPublish_var | publish_ |
Interface that accepts offer_changes. | |
bool | have_not_yet_verified_publish_ |
const TAO_Notify_Property_Time & | pacing_ |
The Pacing Interval. | |
TAO_Notify_Property_Long | max_batch_size_ |
Max. batch size. | |
long | timer_id_ |
Timer Id. | |
TAO_Notify_Timer::Ptr | timer_ |
The Timer Manager that we use. | |
Private Attributes | |
ACE_Auto_Ptr< Request_Queue > | pending_events_ |
Events pending to be delivered. |
typedef ACE_Unbounded_Queue<TAO_Notify_Method_Request_Event_Queueable *> TAO_Notify_Consumer::Request_Queue [protected] |
TAO_BEGIN_VERSIONED_NAMESPACE_DECL TAO_Notify_Consumer::TAO_Notify_Consumer | ( | TAO_Notify_ProxySupplier * | proxy | ) |
Constuctor.
TAO_Notify_Consumer::~TAO_Notify_Consumer | ( | ) | [virtual] |
Destructor.
void TAO_Notify_Consumer::cancel_timer | ( | void | ) | [protected] |
Cancel timer.
void TAO_Notify_Consumer::deliver | ( | TAO_Notify_Method_Request_Event * | request | ) |
Dispatch Event to consumer.
TAO_Notify_Consumer::DispatchStatus TAO_Notify_Consumer::dispatch_batch | ( | const CosNotification::EventBatch & | batch | ) |
Dispatch the batch of events to the attached consumer.
bool TAO_Notify_Consumer::dispatch_from_queue | ( | Request_Queue & | requests, | |
ACE_Guard< TAO_SYNCH_MUTEX > & | ace_mon | |||
) | [protected, virtual] |
Attempt to dispatch event from a queue.
Called by dispatch_pending. Deliver one or more events to the Consumer. If delivery fails, events are left in the queue (or discarded depending on QoS parameters.) Undelivered, undiscarded requests are left at the front of the queue. Overridden in sequence consumer to dispatch as an EventBatch.
void TAO_Notify_Consumer::dispatch_pending | ( | void | ) |
Dispatch the pending events.
TAO_Notify_Consumer::DispatchStatus TAO_Notify_Consumer::dispatch_request | ( | TAO_Notify_Method_Request_Event * | request | ) | [protected] |
void TAO_Notify_Consumer::dispatch_updates_i | ( | const CosNotification::EventTypeSeq & | added, | |
const CosNotification::EventTypeSeq & | removed | |||
) | [protected, virtual] |
bool TAO_Notify_Consumer::enqueue_if_necessary | ( | TAO_Notify_Method_Request_Event * | request | ) | [protected, virtual] |
Add request to a queue if necessary. Overridden by sequence consumer to "always" put incoming events into the queue.
Reimplemented in TAO_Notify_SequencePushConsumer.
void TAO_Notify_Consumer::enqueue_request | ( | TAO_Notify_Method_Request_Event * | request | ) | [protected] |
int TAO_Notify_Consumer::handle_timeout | ( | const ACE_Time_Value & | current_time, | |
const void * | act = 0 | |||
) | [protected, virtual] |
Reimplemented from ACE_Event_Handler.
ACE_INLINE CORBA::Boolean TAO_Notify_Consumer::is_suspended | ( | void | ) |
Is the connection suspended?
TAO_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE TAO_Notify_Consumer::Request_Queue & TAO_Notify_Consumer::pending_events | ( | ) | [protected] |
= Protected Data Members
TAO_Notify_Proxy * TAO_Notify_Consumer::proxy | ( | void | ) | [virtual] |
TAO_SYNCH_MUTEX * TAO_Notify_Consumer::proxy_lock | ( | void | ) | [protected] |
Get the shared Proxy Lock.
TAO_Notify_ProxySupplier * TAO_Notify_Consumer::proxy_supplier | ( | void | ) |
Access Specific Proxy.
virtual void TAO_Notify_Consumer::push | ( | const CosNotification::EventBatch & | event | ) | [pure virtual] |
Push a batch of events to this consumer.
Implemented in TAO_Notify_PushConsumer, TAO_Notify_SequencePushConsumer, and TAO_Notify_StructuredPushConsumer.
virtual void TAO_Notify_Consumer::push | ( | const CosNotification::StructuredEvent & | event | ) | [pure virtual] |
Push <event> to this consumer.
Implemented in TAO_Notify_PushConsumer, TAO_Notify_SequencePushConsumer, and TAO_Notify_StructuredPushConsumer.
virtual void TAO_Notify_Consumer::push | ( | const CORBA::Any & | event | ) | [pure virtual] |
Push <event> to this consumer.
Implemented in TAO_Notify_PushConsumer, TAO_Notify_SequencePushConsumer, and TAO_Notify_StructuredPushConsumer.
void TAO_Notify_Consumer::qos_changed | ( | const TAO_Notify_QoSProperties & | qos_properties | ) | [virtual] |
virtual void TAO_Notify_Consumer::reconnect_from_consumer | ( | TAO_Notify_Consumer * | old_consumer | ) | [pure virtual] |
on reconnect we need to move events from the old consumer to the new one
Implemented in TAO_Notify_PushConsumer, TAO_Notify_SequencePushConsumer, and TAO_Notify_StructuredPushConsumer.
void TAO_Notify_Consumer::resume | ( | void | ) |
Resume Connection.
void TAO_Notify_Consumer::schedule_timer | ( | bool | is_error = false |
) | [protected] |
Schedule timer.
void TAO_Notify_Consumer::shutdown | ( | void | ) | [virtual] |
ACE_INLINE void TAO_Notify_Consumer::suspend | ( | void | ) |
Suspend Connection.
bool TAO_Notify_Consumer::have_not_yet_verified_publish_ [protected] |
CORBA::Boolean TAO_Notify_Consumer::is_suspended_ [protected] |
Suspended Flag.
Max. batch size.
const TAO_Notify_Property_Time& TAO_Notify_Consumer::pacing_ [protected] |
The Pacing Interval.
Events pending to be delivered.
TAO_Notify_ProxySupplier* TAO_Notify_Consumer::proxy_ [protected] |
The Proxy that we associate with.
CosNotifyComm::NotifyPublish_var TAO_Notify_Consumer::publish_ [protected] |
Interface that accepts offer_changes.
TAO_Notify_Timer::Ptr TAO_Notify_Consumer::timer_ [protected] |
The Timer Manager that we use.
long TAO_Notify_Consumer::timer_id_ [protected] |
Timer Id.