|
OmniEvents
|
Implementation of the ProxyPullConsumer interface. More...
#include <ProxyPullConsumer.h>


Public Member Functions | |
| void | connect_pull_supplier (CosEventComm::PullSupplier_ptr pullSupplier) |
| void | disconnect_pull_consumer () |
| ProxyPullConsumer_i (PortableServer::POA_ptr poa, list< CORBA::Any * > &q) | |
| ~ProxyPullConsumer_i () | |
| void | collect () |
| Collects responses since the last trigger. More... | |
| void | triggerRequest () |
| When _req is NIL, sends out a new pull() or try_pull() call. More... | |
| void | reincarnate (const string &oid, const PersistNode &node) |
| Re-create a servant from information saved in the log file. More... | |
| void | output (ostream &os) |
| Save this object's state to a stream. More... | |
Public Member Functions inherited from OmniEvents::Proxy | |
| virtual | ~Proxy () |
Public Member Functions inherited from OmniEvents::Servant | |
| virtual PortableServer::POA_ptr | _default_POA () |
| virtual | ~Servant () |
Private Types | |
| enum | Mode { Pull =0, TryPull =1 } |
| This proxy can call out in either pull() or try_pull() mode. More... | |
Private Attributes | |
| CosEventComm::PullSupplier_var | _target |
| list< CORBA::Any * > & | _queue |
| Mode | _mode |
| int | _exceptionCount |
| Only when two consecutive exceptions have been received from each mode, do we consider the connection dead. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from OmniEvents::Proxy | |
| Proxy (PortableServer::POA_ptr poa) | |
| void | keyOutput (ostream &os, const char *name) |
| Helper method for constructing persistency output. More... | |
| void | eraseKey (const char *name) |
| Helper method for constructing persistency output. More... | |
| void | basicOutput (ostream &os, const char *name, CORBA::Object_ptr target=CORBA::Object::_nil(), const char *extraAttributes=NULL) |
| Helper method for constructing persistency output. More... | |
Protected Member Functions inherited from OmniEvents::Servant | |
| Servant (PortableServer::POA_ptr poa) | |
| void | activateObjectWithId (const char *oidStr) |
| Calls activate_object_with_id() to activate this servant in its POA. More... | |
| void | deactivateObject () |
| Calls deactivate_object() to deactivate this servant in its POA. More... | |
Protected Attributes inherited from OmniEvents::Proxy | |
| CORBA::Request_var | _req |
Protected Attributes inherited from OmniEvents::Servant | |
| PortableServer::POA_var | _poa |
Implementation of the ProxyPullConsumer interface.
Tries to get messages by using pull() then try_pull() method calls, but prefers pull(). Switches between pull() & try_pull() if it gets an exception. Only gives up when both methods have returned two consecutive exceptions.
Note, our own implementation of ProxyPullSupplier::pull() is very basic.
Definition at line 100 of file ProxyPullConsumer.h.
|
private |
This proxy can call out in either pull() or try_pull() mode.
| Enumerator | |
|---|---|
| Pull | |
| TryPull | |
Definition at line 123 of file ProxyPullConsumer.h.
| OmniEvents::ProxyPullConsumer_i::ProxyPullConsumer_i | ( | PortableServer::POA_ptr | poa, |
| list< CORBA::Any * > & | q | ||
| ) |
Definition at line 154 of file ProxyPullConsumer.cc.
| OmniEvents::ProxyPullConsumer_i::~ProxyPullConsumer_i | ( | ) |
Definition at line 165 of file ProxyPullConsumer.cc.
References DB.
| void OmniEvents::ProxyPullConsumer_i::collect | ( | ) |
Collects responses since the last trigger.
Definition at line 170 of file ProxyPullConsumer.cc.
References _exceptionCount, _mode, _queue, OmniEvents::Proxy::_req, _target, DB, OmniEvents::Servant::deactivateObject(), OmniEvents::Orb::deferredRequest(), OmniEvents::Proxy::eraseKey(), HERE, IF_OMNIORB4, OmniEvents::Orb::inst(), Pull, OmniEvents::Orb::reportObjectFailure(), and TryPull.
Referenced by OmniEvents::ProxyPullConsumerManager::collect().
| void OmniEvents::ProxyPullConsumer_i::connect_pull_supplier | ( | CosEventComm::PullSupplier_ptr | pullSupplier | ) |
Definition at line 114 of file ProxyPullConsumer.cc.
References OmniEvents::Proxy::_req, _target, OmniEvents::omniEventsLog::exists(), OmniEvents::WriteLock::os, and output().
Referenced by reincarnate().
| void OmniEvents::ProxyPullConsumer_i::disconnect_pull_consumer | ( | ) |
Definition at line 131 of file ProxyPullConsumer.cc.
References _target, DB, OmniEvents::Servant::deactivateObject(), OmniEvents::Orb::deferredRequest(), OmniEvents::Proxy::eraseKey(), IFELSE_OMNIORB4, and OmniEvents::Orb::inst().
Referenced by OmniEvents::ProxyPullConsumerManager::disconnect().
|
virtual |
Save this object's state to a stream.
Implements OmniEvents::Proxy.
Definition at line 274 of file ProxyPullConsumer.cc.
References _target, and OmniEvents::Proxy::basicOutput().
Referenced by connect_pull_supplier().
|
virtual |
Re-create a servant from information saved in the log file.
Implements OmniEvents::Proxy.
Definition at line 262 of file ProxyPullConsumer.cc.
References OmniEvents::Servant::activateObjectWithId(), OmniEvents::PersistNode::attrString(), and connect_pull_supplier().
| void OmniEvents::ProxyPullConsumer_i::triggerRequest | ( | ) |
When _req is NIL, sends out a new pull() or try_pull() call.
Definition at line 241 of file ProxyPullConsumer.cc.
References _mode, OmniEvents::Proxy::_req, _target, Pull, and TryPull.
Referenced by OmniEvents::ProxyPullConsumerManager::triggerRequest().
|
private |
Only when two consecutive exceptions have been received from each mode, do we consider the connection dead.
Definition at line 129 of file ProxyPullConsumer.h.
Referenced by collect().
|
private |
Definition at line 124 of file ProxyPullConsumer.h.
Referenced by collect(), and triggerRequest().
|
private |
Definition at line 120 of file ProxyPullConsumer.h.
Referenced by collect().
|
private |
Definition at line 119 of file ProxyPullConsumer.h.
Referenced by collect(), connect_pull_supplier(), disconnect_pull_consumer(), output(), and triggerRequest().