xorp

FinderMessengerBase Class Reference

Base class for FinderMessenger classes. More...

#include <finder_messenger.hh>

Inheritance diagram for FinderMessengerBase:
XrlSender FinderTcpMessenger

List of all members.

Classes

class  ResponseState

Public Types

typedef XrlSender::Callback SendCallback

Public Member Functions

 FinderMessengerBase (EventLoop &e, FinderMessengerManager *fmm, XrlCmdMap &cmds)
virtual bool send (const Xrl &xrl, const SendCallback &scb)=0
virtual bool pending () const =0
 Return true if sender has send requests pending.
XrlCmdMapcommand_map ()
EventLoopeventloop ()
void unhook_manager ()
FinderMessengerManagermanager ()

Protected Member Functions

void dispatch_xrl (uint32_t seqno, const Xrl &x)
 Find command associated with Xrl and dispatch it.
bool dispatch_xrl_response (uint32_t seqno, const XrlError &e, XrlArgs *)
bool store_xrl_response (uint32_t seqno, const SendCallback &scb)
virtual void reply (uint32_t seqno, const XrlError &e, const XrlArgs *reply_args)=0
void response_timeout (uint32_t seqno)

Private Types

typedef map< uint32_t,
ResponseState
SeqNoResponseMap

Private Member Functions

void dispatch_xrl_cb (const XrlCmdError &e, const XrlArgs *reply_args, uint32_t seqno)

Private Attributes

EventLoop_eventloop
FinderMessengerManager_manager
SeqNoResponseMap _expected_responses
XrlCmdMap_cmds

Friends

class ResponseState

Detailed Description

Base class for FinderMessenger classes.

FinderMessenger classes are expected to handle the transport and dispatch of Xrl's and their responses. This base class provides a common code for actually doing the Xrl dispatch and handling the state associated with their responses.


Member Function Documentation

virtual bool FinderMessengerBase::send ( const Xrl xrl,
const SendCallback &  scb 
) [pure virtual]
Parameters:
xrlXrl to be sent.
scbcallback to be invoked with result from Xrl
Returns:
true if Xrl is accepted for sending, false otherwise.

Implements XrlSender.

Implemented in FinderTcpMessenger.


The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations