00001 /* -*- mode:c++ -*- ******************************************************** 00002 * 00003 * 00004 * 00005 */ 00006 00007 #ifndef DECIDER_TO_PHY_INTERFACE_H_ 00008 #define DECIDER_TO_PHY_INTERFACE_H_ 00009 00010 #include <vector> 00011 #include <list> 00012 #include <omnetpp.h> 00013 00014 #include "AirFrame_m.h" 00015 #include "BaseUtility.h" 00016 #include "BaseWorldUtility.h" 00017 00021 class DeciderResult; 00022 00037 class DeciderToPhyInterface 00038 { 00039 public: 00045 typedef std::list<AirFrame*> AirFrameVector; 00046 00047 virtual ~DeciderToPhyInterface() {} 00048 00053 virtual void getChannelInfo(simtime_t from, simtime_t to, AirFrameVector& out) = 0; 00054 00062 virtual ConstMapping* getThermalNoise(simtime_t from, simtime_t to) = 0; 00063 00070 virtual void sendControlMsg(cMessage* msg) = 0; 00071 00080 virtual void sendUp(AirFrame* packet, DeciderResult* result) = 0; 00081 00086 virtual simtime_t getSimTime() = 0; 00087 00095 virtual void cancelScheduledMessage(cMessage* msg) = 0; 00096 00105 virtual void rescheduleMessage(cMessage* msg, simtime_t t) = 0; 00106 00113 virtual void drawCurrent(double amount, int activity) = 0; 00114 00118 virtual BaseUtility* getUtility() = 0; 00119 00123 virtual BaseWorldUtility* getWorldUtility() = 0; 00124 00134 virtual void recordScalar(const char *name, double value, const char *unit=NULL) = 0; 00135 00137 virtual int getCurrentRadioChannel() = 0; 00138 }; 00139 00140 #endif /*DECIDER_TO_PHY_INTERFACE_H_*/