IBR-DTNSuite
0.8
|
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_*/