Classes |
| class | InstanceInfo |
Public Types |
typedef XorpCallback2< void,
const XrlError &, const
FinderDBEntry * >::RefPtr | QueryCallback |
|
typedef ref_ptr< FinderClientOp > | Operation |
|
typedef list< Operation > | OperationQueue |
typedef map< string,
FinderDBEntry > | ResolvedTable |
|
typedef map< string, string > | LocalResolvedTable |
|
typedef vector< InstanceInfo > | InstanceList |
Public Member Functions |
|
| FinderClient () |
| | Constructor.
|
|
virtual | ~FinderClient () |
| | Destructor.
|
| bool | register_xrl_target (const string &instance_name, const string &class_name, const XrlDispatcher *dispatcher) |
| | Register an Xrl Target with the FinderClient and place request with Finder to perform registration.
|
| bool | unregister_xrl_target (const string &instance_name) |
| | Unregister Xrl Target with FinderClient and place a request with the Finder to remove registration.
|
| bool | register_xrl (const string &instance_name, const string &xrl, const string &pf_name, const string &pf_args) |
| | Register an Xrl with the Finder.
|
| bool | enable_xrls (const string &instance_name) |
| | Request Finder advertise Xrls associated with an Xrl Target instance to other XORP Xrl targets.
|
| void | query (EventLoop &eventloop, const string &xrl, const QueryCallback &qcb) |
| | Request resolution of an Xrl.
|
|
uint32_t | queries_pending () const |
| | Get number of asynchonous queries pending resolution.
|
| const FinderDBEntry * | query_cache (const string &xrl) const |
| | Attempt to resolve Xrl from cache.
|
| void | uncache_result (const FinderDBEntry *dbe) |
| | Remove an resolved entry from cache.
|
| bool | query_self (const string &incoming_xrl_command, string &local_xrl_command) const |
| | Resolve Xrl that an Xrl Target associated with the FinderClient registered.
|
| bool | forward_finder_xrl (const Xrl &x, const XrlPFSender::SendCallback &cb) |
| | Send an Xrl for the Finder to dispatch.
|
|
FinderMessengerBase * | messenger () |
| | Accessor for Finder Messenger used by FinderClient instance.
|
|
OperationQueue & | todo_list () |
| | Get list of operations pending.
|
|
OperationQueue & | done_list () |
| | Get List of operations done and are repeatable.
|
|
void | notify_done (const FinderClientOp *completed) |
| | Notify successful completion of an operation on the todo list.
|
|
void | notify_failed (const FinderClientOp *completed) |
| | Notify failed completion of an operation on the todo list.
|
|
XrlCmdMap & | commands () |
| | Get the Xrl Commands implemented by the FinderClient.
|
| bool | ready () const |
| bool | connected () const |
| bool | attach_observer (FinderClientObserver *o) |
| | Attach a FinderClientObserver instance to receive event notifications.
|
| bool | detach_observer (FinderClientObserver *o) |
| | Detach the FinderClientObserver instance.
|
Protected Member Functions |
|
void | messenger_birth_event (FinderMessengerBase *) |
| | Method called by messenger constructor.
|
|
void | messenger_death_event (FinderMessengerBase *) |
| | Method called by messenger destructor.
|
|
void | messenger_active_event (FinderMessengerBase *) |
| | Method called before Xrl is dispatched.
|
|
void | messenger_inactive_event (FinderMessengerBase *) |
| | Method called immediately after Xrl is dispatched.
|
| void | messenger_stopped_event (FinderMessengerBase *) |
| | Method called when Messenger is unable to continue.
|
|
bool | manages (const FinderMessengerBase *) const |
| | Method called to tell if FinderMessengerManager instance manages a particular messenger.
|
|
void | uncache_xrl (const string &xrl) |
|
void | uncache_xrls_from_target (const string &target) |
|
XrlCmdError | dispatch_tunneled_xrl (const string &xrl) |
|
void | crank () |
|
void | prepare_for_restart () |
|
InstanceList::iterator | find_instance (const string &instance) |
|
InstanceList::const_iterator | find_instance (const string &instance) const |
Protected Attributes |
|
OperationQueue | _todo_list |
|
OperationQueue | _done_list |
|
ResolvedTable | _rt |
|
LocalResolvedTable | _lrt |
|
InstanceList | _ids |
|
XrlCmdMap | _commands |
|
FinderMessengerBase * | _messenger |
|
bool | _pending_result |
|
bool | _xrls_registered |
|
FinderClientObserver * | _observer |
Private Member Functions |
|
void | dispatch_tunneled_xrl_cb (const XrlError &e, const XrlArgs *a) const |
Class that represents clients of the Finder.
The FinderClient class performs communication processing with the Finder on behalf of XORP processes. It handles XRL registration and resolution requests.