|
|
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.
void crank_replicator ()
| crank_replicator |
Schedule the next Xrl dispatch.
inline const string& xrl_target_name ()
| xrl_target_name |
[const]
bool is_empty_queue ()
| is_empty_queue |
[const]
Test whether the queue with the commands is empty.
Returns: trie if the queue with the commans is empty, otherwise false.
void crank_manager ()
| crank_manager |
[protected virtual]
Method invoked when it is time to schedule the next Xrl dispatch.
void crank_manager_cb ()
| crank_manager_cb |
[protected virtual]
Method invoked when the previous Xrl dispatch has completed.
void push_manager_queue ()
| push_manager_queue |
[protected virtual]
Method invoked when a command should be added to the manager's queue.
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]