IBR-DTNSuite  0.8
daemon/src/net/ConvergenceLayer.h
Go to the documentation of this file.
00001 #ifndef CONVERGENCELAYER_H_
00002 #define CONVERGENCELAYER_H_
00003 
00004 #include "ibrdtn/data/BundleID.h"
00005 #include "core/Node.h"
00006 
00007 using namespace dtn::data;
00008 
00009 namespace dtn
00010 {
00011         namespace net
00012         {
00013                 class BundleReceiver;
00014 
00018                 class ConvergenceLayer
00019                 {
00020                 public:
00021                         class Job
00022                         {
00023                         public:
00024                                 Job();
00025                                 Job(const dtn::data::EID &eid, const dtn::data::BundleID &b);
00026                                 ~Job();
00027 
00028                                 void clear();
00029 
00030                                 dtn::data::BundleID _bundle;
00031                                 dtn::data::EID _destination;
00032                         };
00033 
00037                         virtual ~ConvergenceLayer() {};
00038 
00039                         virtual dtn::core::Node::Protocol getDiscoveryProtocol() const = 0;
00040 
00041                         virtual void queue(const dtn::core::Node &n, const ConvergenceLayer::Job &job) = 0;
00042 
00047                         virtual void open(const dtn::core::Node&) {};
00048                 };
00049         }
00050 }
00051 
00052 #endif /*CONVERGENCELAYER_H_*/