DeciderToPhyInterface.h

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_*/