00001 #ifndef CONVERGENCELAYER_H_ 00002 #define CONVERGENCELAYER_H_ 00003 00004 #include "data/Bundle.h" 00005 #include "Node.h" 00006 00007 using namespace dtn::data; 00008 00009 namespace dtn 00010 { 00011 namespace core 00012 { 00013 class BundleReceiver; 00014 00020 enum TransmitReport 00021 { 00022 UNKNOWN = -1, 00023 TRANSMIT_SUCCESSFUL = 0, 00024 NO_ROUTE_FOUND = 1, 00025 CONVERGENCE_LAYER_BUSY = 2, 00026 BUNDLE_ACCEPTED = 3 00027 }; 00028 00032 class ConvergenceLayer 00033 { 00034 public: 00038 ConvergenceLayer() : m_receiver(NULL) 00039 {}; 00040 00044 virtual ~ConvergenceLayer() {}; 00045 00051 virtual TransmitReport transmit(const Bundle &b) = 0; 00052 00060 virtual TransmitReport transmit(const Bundle &b, const Node &node) = 0; 00061 00062 void setBundleReceiver(BundleReceiver *receiver); 00063 void eventBundleReceived(const Bundle &bundle); 00064 00065 private: 00066 BundleReceiver *m_receiver; 00067 }; 00068 } 00069 } 00070 00071 #endif /*CONVERGENCELAYER_H_*/
1.5.6