OmniEvents
|
Servant for ProxyPullSupplier interface. More...
#include <ProxyPullSupplier.h>
Public Member Functions | |
void | connect_pull_consumer (CosEventComm::PullConsumer_ptr pullConsumer) |
void | disconnect_pull_supplier () |
CORBA::Any * | pull () |
CORBA::Any * | try_pull (CORBA::Boolean &has_event) |
ProxyPullSupplier_i (PortableServer::POA_ptr poa, EventQueue &q) | |
~ProxyPullSupplier_i () | |
void | reincarnate (const string &oid, const PersistNode &node) |
Re-create a servant from information saved in the log file. | |
void | output (ostream &os) |
Save this object's state to a stream. | |
unsigned long | timestamp () const |
![]() | |
virtual | ~Proxy () |
![]() | |
virtual PortableServer::POA_ptr | _default_POA () |
virtual | ~Servant () |
![]() | |
Reader (EventQueue &eventQueue) | |
bool | moreEvents () const |
CORBA::Any * | nextEvent () |
Private Member Functions | |
void | touch () |
Update the _timestamp to the current moment. | |
Private Attributes | |
CosEventComm::PullConsumer_var | _target |
bool | _connected |
Can't use _target to keep track of whether this object is connected, because it is legal to connect with a nil target. | |
unsigned long | _timestamp |
Keep track of when this proxy was last contacted. | |
Additional Inherited Members | |
![]() | |
Proxy (PortableServer::POA_ptr poa) | |
void | keyOutput (ostream &os, const char *name) |
Helper method for constructing persistency output. | |
void | eraseKey (const char *name) |
Helper method for constructing persistency output. | |
void | basicOutput (ostream &os, const char *name, CORBA::Object_ptr target=CORBA::Object::_nil(), const char *extraAttributes=NULL) |
Helper method for constructing persistency output. | |
![]() | |
Servant (PortableServer::POA_ptr poa) | |
void | activateObjectWithId (const char *oidStr) |
Calls activate_object_with_id() to activate this servant in its POA. | |
void | deactivateObject () |
Calls deactivate_object() to deactivate this servant in its POA. | |
![]() | |
CORBA::Request_var | _req |
![]() | |
PortableServer::POA_var | _poa |
Servant for ProxyPullSupplier interface.
Does not properly implement the blocking pull() method - to do so would need us to create and park a thread for each waiting pull() method. Instead pull() throws TRANSIENT if the event queue is empty.
Definition at line 84 of file ProxyPullSupplier.h.
OmniEvents::ProxyPullSupplier_i::ProxyPullSupplier_i | ( | PortableServer::POA_ptr | poa, |
EventQueue & | q | ||
) |
Definition at line 183 of file ProxyPullSupplier.cc.
References touch().
OmniEvents::ProxyPullSupplier_i::~ProxyPullSupplier_i | ( | ) |
Definition at line 196 of file ProxyPullSupplier.cc.
References DB.
void OmniEvents::ProxyPullSupplier_i::connect_pull_consumer | ( | CosEventComm::PullConsumer_ptr | pullConsumer | ) |
Definition at line 110 of file ProxyPullSupplier.cc.
References _connected, OmniEvents::Proxy::_req, _target, OmniEvents::createNarrowedReference(), OmniEvents::omniEventsLog::exists(), OmniEvents::WriteLock::os, output(), and touch().
Referenced by reincarnate().
void OmniEvents::ProxyPullSupplier_i::disconnect_pull_supplier | ( | ) |
Definition at line 128 of file ProxyPullSupplier.cc.
References _connected, _target, OmniEvents::createNarrowedReference(), DB, OmniEvents::Servant::deactivateObject(), OmniEvents::Orb::deferredRequest(), OmniEvents::Proxy::eraseKey(), IFELSE_OMNIORB4, OmniEvents::Orb::inst(), and touch().
Referenced by OmniEvents::ProxyPullSupplierManager::disconnect().
Save this object's state to a stream.
Implements OmniEvents::Proxy.
Definition at line 213 of file ProxyPullSupplier.cc.
References _target, and OmniEvents::Proxy::basicOutput().
Referenced by connect_pull_consumer().
CORBA::Any * OmniEvents::ProxyPullSupplier_i::pull | ( | ) |
Definition at line 150 of file ProxyPullSupplier.cc.
References _connected, IFELSE_OMNIORB4, OmniEvents::EventQueue::Reader::moreEvents(), OmniEvents::EventQueue::Reader::nextEvent(), and touch().
|
virtual |
Re-create a servant from information saved in the log file.
Implements OmniEvents::Proxy.
Definition at line 201 of file ProxyPullSupplier.cc.
References OmniEvents::Servant::activateObjectWithId(), connect_pull_consumer(), and OmniEvents::createNarrowedReference().
Definition at line 99 of file ProxyPullSupplier.h.
References _timestamp.
Referenced by OmniEvents::ProxyPullSupplierManager::incarnate().
|
inlineprivate |
Update the _timestamp to the current moment.
Definition at line 218 of file ProxyPullSupplier.cc.
References _timestamp, and OmniEvents::createNarrowedReference().
Referenced by connect_pull_consumer(), disconnect_pull_supplier(), ProxyPullSupplier_i(), pull(), and try_pull().
CORBA::Any * OmniEvents::ProxyPullSupplier_i::try_pull | ( | CORBA::Boolean & | has_event | ) |
Definition at line 164 of file ProxyPullSupplier.cc.
References _connected, OmniEvents::createNarrowedReference(), OmniEvents::EventQueue::Reader::moreEvents(), OmniEvents::EventQueue::Reader::nextEvent(), and touch().
|
private |
Can't use _target to keep track of whether this object is connected, because it is legal to connect with a nil target.
Use this bool instead.
Definition at line 106 of file ProxyPullSupplier.h.
Referenced by connect_pull_consumer(), disconnect_pull_supplier(), pull(), and try_pull().
|
private |
Definition at line 101 of file ProxyPullSupplier.h.
Referenced by connect_pull_consumer(), disconnect_pull_supplier(), and output().
Keep track of when this proxy was last contacted.
Definition at line 108 of file ProxyPullSupplier.h.
Referenced by timestamp(), and touch().