|
|
The IfMgrXrlReplicator contains an IfMgrCommandFifoQueue and adds commands to it when IfMgrXrlReplicator::push is called. Invoking push also cranks the queue if an Xrl dispatch is not in progress. Cranking causes the Xrl at the head of the queue to be dispatched.
On the successful dispatch of an Xrl, the next command ready for dispatching as an Xrl is taken from the queue and dispatched if available. If no command is available, processing stops. If an Xrl dispatch fails, the overrideable method IfMgrXrlReplicator::xrl_error_event is called. After an error, the queue processing stops and the IfMgrXrlReplicator instance should in most cases be destructed.
typedef IfMgrCommandSinkBase::Cmd Cmd | Cmd |
IfMgrXrlReplicator (XrlSender& sender,
const string& xrl_target_name)
| IfMgrXrlReplicator |
void push (const Cmd& cmd)
| push |
Add a command to be sent as an Xrl to the remote target.
Reimplemented from IfMgrCommandSinkBase.
inline const string& xrl_target_name ()
| xrl_target_name |
[const]
void xrl_error_event (const XrlError& e)
| xrl_error_event |
[protected virtual]
Method invoked when an Xrl dispatch fails.
IfMgrXrlReplicator ()
| IfMgrXrlReplicator |
[protected]
IfMgrXrlReplicator (const IfMgrXrlReplicator&)
| IfMgrXrlReplicator |
[protected]
IfMgrXrlReplicator& operator= (const IfMgrXrlReplicator&)
| operator= |
[protected]
Not implemented
Reimplemented from CallbackSafeObject.
XrlSender& _s | _s |
[protected]
string _tgt | _tgt |
[protected]
IfMgrCommandFifoQueue _queue | _queue |
[protected]
bool _pending | _pending |
[protected]