#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 |
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. |
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 | |||
) |
OmniEvents::ProxyPullSupplier_i::~ProxyPullSupplier_i | ( | ) |
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::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, DB, OmniEvents::Servant::deactivateObject(), OmniEvents::Orb::deferredRequest(), OmniEvents::Proxy::eraseKey(), IFELSE_OMNIORB4, OmniEvents::Orb::inst(), and touch().
Referenced by OmniEvents::ProxyPullSupplierManager::disconnect(), and OmniEvents::ProxyPullSupplierManager::incarnate().
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().
CORBA::Any * OmniEvents::ProxyPullSupplier_i::try_pull | ( | CORBA::Boolean & | has_event | ) |
Definition at line 164 of file ProxyPullSupplier.cc.
References _connected, OmniEvents::EventQueue::Reader::moreEvents(), OmniEvents::EventQueue::Reader::nextEvent(), and touch().
void OmniEvents::ProxyPullSupplier_i::reincarnate | ( | const string & | oid, | |
const PersistNode & | node | |||
) | [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(), OmniEvents::PersistNode::attrString(), and connect_pull_consumer().
void OmniEvents::ProxyPullSupplier_i::output | ( | ostream & | os | ) | [virtual] |
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().
unsigned long OmniEvents::ProxyPullSupplier_i::timestamp | ( | void | ) | const [inline] |
Definition at line 99 of file ProxyPullSupplier.h.
References _timestamp.
Referenced by OmniEvents::ProxyPullSupplierManager::incarnate().
void OmniEvents::ProxyPullSupplier_i::touch | ( | ) | [inline, private] |
Update the _timestamp to the current moment.
Definition at line 218 of file ProxyPullSupplier.cc.
References _timestamp.
Referenced by connect_pull_consumer(), disconnect_pull_supplier(), ProxyPullSupplier_i(), pull(), and try_pull().
CosEventComm::PullConsumer_var OmniEvents::ProxyPullSupplier_i::_target [private] |
Definition at line 101 of file ProxyPullSupplier.h.
Referenced by connect_pull_consumer(), disconnect_pull_supplier(), and output().
bool OmniEvents::ProxyPullSupplier_i::_connected [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().
unsigned long OmniEvents::ProxyPullSupplier_i::_timestamp [private] |
Keep track of when this proxy was last contacted.
Definition at line 108 of file ProxyPullSupplier.h.
Referenced by timestamp(), and touch().