IBR-DTNSuite  0.8
dtn::routing::BaseRouter::Extension Class Reference

#include <BaseRouter.h>

Inheritance diagram for dtn::routing::BaseRouter::Extension:

List of all members.

Public Types

enum  CALLBACK_ACTION { ROUTE_CALLBACK_FORWARDED = 0, ROUTE_CALLBACK_ABORTED = 1, ROUTE_CALLBACK_REJECTED = 2, ROUTE_CALLBACK_DELETED = 3 }

Public Member Functions

 Extension ()
virtual ~Extension ()=0
virtual void notify (const dtn::core::Event *evt)=0
virtual void requestHandshake (const dtn::data::EID &, NodeHandshake &) const
virtual void responseHandshake (const dtn::data::EID &, const NodeHandshake &, NodeHandshake &)
virtual void processHandshake (const dtn::data::EID &, NodeHandshake &)
void transferTo (const dtn::data::EID &destination, const dtn::data::BundleID &id)
void transferTo (NeighborDatabase::NeighborEntry &entry, const dtn::data::BundleID &id)

Static Public Member Functions

static bool isRouting (const dtn::data::EID &eid)

Protected Member Functions

BaseRouteroperator* ()

Friends

class BaseRouter

Detailed Description

Definition at line 65 of file BaseRouter.h.


Member Enumeration Documentation

Enumerator:
ROUTE_CALLBACK_FORWARDED 
ROUTE_CALLBACK_ABORTED 
ROUTE_CALLBACK_REJECTED 
ROUTE_CALLBACK_DELETED 

Definition at line 73 of file BaseRouter.h.


Constructor & Destructor Documentation

base implementation of the Extension class

Definition at line 61 of file BaseRouter.cpp.

Definition at line 64 of file BaseRouter.cpp.


Member Function Documentation

Returns true, if the bundle contains routing data.

Parameters:
meta
Returns:

Definition at line 98 of file BaseRouter.cpp.

References dtn::data::EID::CBHE_SCHEME, dtn::data::EID::getApplication(), and dtn::data::EID::getScheme().

Referenced by dtn::routing::FloodRoutingExtension::run(), dtn::routing::StaticRoutingExtension::run(), and dtn::routing::EpidemicRoutingExtension::run().

Here is the call graph for this function:

BaseRouter & dtn::routing::BaseRouter::Extension::operator* ( ) [protected]

Definition at line 67 of file BaseRouter.cpp.

virtual void dtn::routing::BaseRouter::Extension::processHandshake ( const dtn::data::EID ,
NodeHandshake  
) [inline, virtual]

After a handshake has been completed every module can process the handshake response.

Parameters:
TheEID of the other node.
Thereceived handshake object.

Reimplemented in dtn::routing::ProphetRoutingExtension, and dtn::routing::NodeHandshakeExtension.

Definition at line 103 of file BaseRouter.h.

Referenced by dtn::routing::NodeHandshakeExtension::processHandshake().

virtual void dtn::routing::BaseRouter::Extension::requestHandshake ( const dtn::data::EID ,
NodeHandshake  
) const [inline, virtual]

If some data of another node is required. These method is called to collect all necessary identifier of data items.

Parameters:
TheEID of the other node.
Theobject to put the requested identifier into.

Reimplemented in dtn::routing::ProphetRoutingExtension, dtn::routing::EpidemicRoutingExtension, and dtn::routing::NodeHandshakeExtension.

Definition at line 87 of file BaseRouter.h.

virtual void dtn::routing::BaseRouter::Extension::responseHandshake ( const dtn::data::EID ,
const NodeHandshake ,
NodeHandshake  
) [inline, virtual]

If a handshake message is received, this method is called to collect the different data items generated by the router extensions.

Parameters:
TheEID of the other node.
Thereceived handshake object.
Theresponse for the received handshake.

Reimplemented in dtn::routing::ProphetRoutingExtension, and dtn::routing::NodeHandshakeExtension.

Definition at line 96 of file BaseRouter.h.

Referenced by dtn::routing::NodeHandshakeExtension::processHandshake().

Transfer one bundle to another node.

Exceptions:
BundleNotFoundExceptionif the bundle do not exist.
Parameters:
destinationThe EID of the other node.
idThe ID of the bundle to transfer. This bundle must be stored in the storage.

Transfer one bundle to another node.

Parameters:
destinationThe EID of the other node.
idThe ID of the bundle to transfer. This bundle must be stored in the storage.

Definition at line 77 of file BaseRouter.cpp.

Referenced by dtn::routing::NeighborRoutingExtension::run(), dtn::routing::FloodRoutingExtension::run(), dtn::routing::StaticRoutingExtension::run(), and dtn::routing::EpidemicRoutingExtension::run().


Friends And Related Function Documentation

friend class BaseRouter [friend]

Definition at line 125 of file BaseRouter.h.


The documentation for this class was generated from the following files: