#include <ProxyPushConsumer.h>
Inheritance diagram for OmniEvents::ProxyPushConsumer_i:


Public Member Functions | |
| void | connect_push_supplier (CosEventComm::PushSupplier_ptr pushSupplier) |
| If pushSupplier is provided, then it is stored in _connections. | |
| void | disconnect_push_consumer () |
| We may not have a record of the supplier, so this method must accept calls from any supplier without complaint. | |
| void | push (const CORBA::Any &event) |
| Accepts events from any supplier, not just those stored in _connections. | |
| ProxyPushConsumer_i (PortableServer::POA_ptr parentPoa, list< CORBA::Any * > &q, ConsumerAdmin_i &consumerAdmin) | |
| virtual | ~ProxyPushConsumer_i () |
| void | trigger () |
| CosEventChannelAdmin::ProxyPushConsumer_ptr | createObject () |
| Constructs a new object. | |
| void | disconnect () |
| Send disconnect_push_supplier() to all connected PushSuppliers. | |
| void | reincarnate (const PersistNode &node) |
| Re-create all servants from information saved in the log file. | |
| void | output (ostream &os) const |
| Save this object's state to a stream. | |
Private Types | |
| typedef map< string, Connection > | Connections_t |
Private Member Functions | |
| string | currentObjectId () const |
Private Attributes | |
| Connections_t | _connections |
| CORBA::String_var | _channelName |
| ConsumerAdmin_i & | _consumerAdmin |
| list< CORBA::Any * > & | _queue |
| bool | _useLocalQueue |
| Switch between RT/chunked modes. | |
Classes | |
| struct | Connection |
All objects are implemented by a single instance of this servant class. This enables us to deal statelessly with anonymous connections (where connect_push_supplier() is called with a NIL callback reference).
Definition at line 60 of file ProxyPushConsumer.h.
typedef map<string,Connection> OmniEvents::ProxyPushConsumer_i::Connections_t [private] |
Definition at line 129 of file ProxyPushConsumer.h.
| OmniEvents::ProxyPushConsumer_i::ProxyPushConsumer_i | ( | PortableServer::POA_ptr | parentPoa, | |
| list< CORBA::Any * > & | q, | |||
| ConsumerAdmin_i & | consumerAdmin | |||
| ) |
Definition at line 115 of file ProxyPushConsumer.cc.
References _channelName, OmniEvents::Servant::_poa, and DB.
| OmniEvents::ProxyPushConsumer_i::~ProxyPushConsumer_i | ( | ) | [virtual] |
| void OmniEvents::ProxyPushConsumer_i::connect_push_supplier | ( | CosEventComm::PushSupplier_ptr | pushSupplier | ) |
If pushSupplier is provided, then it is stored in _connections.
Otherwise this method does nothing.
Definition at line 34 of file ProxyPushConsumer.cc.
References _channelName, _connections, currentObjectId(), OmniEvents::Orb::deferredRequest(), OmniEvents::omniEventsLog::exists(), OmniEvents::Orb::inst(), OmniEvents::WriteLock::os, and OmniEvents::ProxyPushConsumer_i::Connection::output().
| CosEventChannelAdmin::ProxyPushConsumer_ptr OmniEvents::ProxyPushConsumer_i::createObject | ( | ) |
Constructs a new object.
This method is almost completely stateless. It makes a new objectId, and returns it to the caller. But, only when it's USED the first time (connect_push_consumer) do we store it in _connections. (Note, The POA doesn't store objects either.)
Definition at line 184 of file ProxyPushConsumer.cc.
References OmniEvents::Servant::_poa.
Referenced by OmniEvents::SupplierAdmin_i::obtain_push_consumer().
| string OmniEvents::ProxyPushConsumer_i::currentObjectId | ( | ) | const [private] |
Definition at line 281 of file ProxyPushConsumer.cc.
References DB, and OmniEvents::Orb::inst().
Referenced by connect_push_supplier(), and disconnect_push_consumer().
| void OmniEvents::ProxyPushConsumer_i::disconnect | ( | ) |
Send disconnect_push_supplier() to all connected PushSuppliers.
Definition at line 193 of file ProxyPushConsumer.cc.
References _connections, OmniEvents::Orb::deferredRequest(), and OmniEvents::Orb::inst().
Referenced by OmniEvents::SupplierAdmin_i::disconnect().
| void OmniEvents::ProxyPushConsumer_i::disconnect_push_consumer | ( | ) |
We may not have a record of the supplier, so this method must accept calls from any supplier without complaint.
Definition at line 73 of file ProxyPushConsumer.cc.
References _channelName, _connections, currentObjectId(), DB, OmniEvents::Orb::deferredRequest(), OmniEvents::omniEventsLog::exists(), OmniEvents::Orb::inst(), and OmniEvents::WriteLock::os.
| void OmniEvents::ProxyPushConsumer_i::output | ( | ostream & | os | ) | const |
Save this object's state to a stream.
Definition at line 270 of file ProxyPushConsumer.cc.
References _connections.
Referenced by OmniEvents::SupplierAdmin_i::output().
| void OmniEvents::ProxyPushConsumer_i::push | ( | const CORBA::Any & | event | ) |
Accepts events from any supplier, not just those stored in _connections.
Definition at line 101 of file ProxyPushConsumer.cc.
References _consumerAdmin, _queue, _useLocalQueue, and OmniEvents::ConsumerAdmin_i::send().
| void OmniEvents::ProxyPushConsumer_i::reincarnate | ( | const PersistNode & | node | ) |
Re-create all servants from information saved in the log file.
Definition at line 208 of file ProxyPushConsumer.cc.
References _channelName, OmniEvents::PersistNode::_child, _connections, OmniEvents::Servant::_poa, and DB.
Referenced by OmniEvents::SupplierAdmin_i::reincarnate().
| void OmniEvents::ProxyPushConsumer_i::trigger | ( | ) | [inline] |
Definition at line 86 of file ProxyPushConsumer.h.
References _useLocalQueue.
Referenced by OmniEvents::SupplierAdmin_i::collect().
CORBA::String_var OmniEvents::ProxyPushConsumer_i::_channelName [private] |
Definition at line 131 of file ProxyPushConsumer.h.
Referenced by connect_push_supplier(), disconnect_push_consumer(), ProxyPushConsumer_i(), and reincarnate().
Definition at line 130 of file ProxyPushConsumer.h.
Referenced by connect_push_supplier(), disconnect(), disconnect_push_consumer(), output(), and reincarnate().
list<CORBA::Any*>& OmniEvents::ProxyPushConsumer_i::_queue [private] |
bool OmniEvents::ProxyPushConsumer_i::_useLocalQueue [private] |
1.4.7