![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: compatibilityRadio.h,v $ $Revision: 1.5 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00013 00014 #ifndef compatibilityRadio_h 00015 #define compatibilityRadio_h 00016 00017 #include "vrfobjcore/baseRadio.h" 00018 #include "vrfobjcore/vrfobjcoreDefines.h" 00019 #include "vrfmsgs/vrfObjectMessage.h" 00020 #include "vrfmsgs/radioMsg.h" 00021 00022 00033 class DT_DLL_vrfobjcore DtCompatibilityRadio : public DtSimBaseRadio 00034 { 00035 public: 00037 DtCompatibilityRadio(DtVrfObject * vrfObject); 00038 00040 virtual ~DtCompatibilityRadio(); 00041 00042 private: 00044 DtCompatibilityRadio(); 00046 DtCompatibilityRadio(const DtCompatibilityRadio& orig); 00048 DtCompatibilityRadio & operator=(const DtCompatibilityRadio & orig); 00049 00050 public: 00051 virtual bool init(); 00052 00054 virtual bool isCommand() const; 00055 00057 00058 virtual void sendToNet(DtSimRadioMessage * msg); 00059 virtual void sendToCommandNet(DtSimRadioMessage* msg); 00060 virtual void sendToAllNets(DtSimRadioMessage* msg); 00062 00064 00065 virtual void setCommandChannel(int v) {}; 00066 virtual int commandChannel() const {return 0;} 00068 00070 virtual bool isLocal() const; 00071 00073 virtual DtString type() const; 00074 00076 00077 virtual void addRadioMessageCallback(int type, 00078 DtMessageCallbackFcn fcn, void* usrData); 00079 00080 virtual void removeRadioMessageCallback(int type, 00081 DtMessageCallbackFcn fcn, void* usrData); 00083 00085 virtual void addCommandRadioMessageCallback(int type, 00086 DtMessageCallbackFcn fcn, void* usrData); 00088 virtual void removeCommandRadioMessageCallback(int type, 00089 DtMessageCallbackFcn fcn, void* usrData); 00090 00092 00093 virtual void addTaskMessageCallback(DtMessageCallbackFcn fcn, void* usrData); 00094 virtual void removeTaskMessageCallback(DtMessageCallbackFcn fcn, void* usrData); 00096 00098 00099 virtual void addSetDataMessageCallback(DtMessageCallbackFcn fcn, void* usrData); 00100 virtual void removeSetDataMessageCallback(DtMessageCallbackFcn fcn, void* usrData); 00102 00104 00105 virtual void addReportMessageCallback(DtMessageCallbackFcn fcn, void* usrData); 00106 virtual void removeReportMessageCallback(DtMessageCallbackFcn fcn, void* usrData); 00108 00109 static DtSimBaseRadio* create(DtVrfObject* vrfObject, DtVrfObjectManager* objManager); 00110 00112 static DtCompatibilityRadio* isCommandChannelRadio(DtSimBaseRadio* radio); 00113 00114 00115 protected: 00116 typedef std::pair<DtMessageCallbackFcn, void*> DtOldStyleCallbackInfo; 00117 00120 static void oldStyleConverterCallback(const DtVrfObjectMessage* msg, void* usr); 00121 00124 virtual DtOldStyleCallbackInfo* addOldStyleCallbackInfo(DtMessageCallbackFcn fcn, void* usr); 00125 00128 virtual DtOldStyleCallbackInfo* findOldStyleCallbackInfo(DtMessageCallbackFcn fcn, void* usr); 00129 00132 virtual void removeAndDeleteOldStyleCallbackInfo(DtOldStyleCallbackInfo* cbInfo); 00133 00134 protected: 00135 DtVrfObjectCommunicationInterface* myCommInterface; 00136 00137 typedef std::list<DtOldStyleCallbackInfo*> DtOldStyleCallbackInfoList; 00138 DtOldStyleCallbackInfoList myOldStyleCallbackInfoList; 00139 }; 00140 00141 #endif