VR-Forces 4.1.1 Class Documentation
compatibilityRadio.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2007 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
13 #include "vrfobjcore/baseRadio.h"
16 #include "vrftasks/radioMsgTypes.h"
18 
19 
31 {
32 public:
34  DtCompatibilityRadio(DtVrfObject * vrfObject);
35 
37  virtual ~DtCompatibilityRadio();
38 
39 private:
46 
47 public:
48  virtual bool init();
49 
51  virtual bool isCommand() const;
52 
54 
55  virtual void sendToNet(DtVrfObjectMessage * msg);
56  virtual void sendToCommandNet(DtVrfObjectMessage* msg);
57  virtual void sendToAllNets(DtVrfObjectMessage* msg);
59 
61 
62  virtual void setCommandChannel(int v) {};
63  virtual int commandChannel() const {return 0;}
65 
67  virtual bool isLocal() const;
68 
70  virtual DtString type() const;
71 
74  template<typename messageType>
75  void addMessageCallback(const messageType& mType, DtMessageCallbackFcn fcn, void* usr)
76  {
77  myCommInterface->addMessageCallback(mType, oldStyleConverterCallback,
78  addOldStyleCallbackInfo(fcn, usr));
79  }
80 
81  template<typename messageType>
82  void removeMessageCallback(const messageType& mType, DtMessageCallbackFcn fcn, void* usr)
83  {
84  DtOldStyleCallbackInfo* cbInfo = findOldStyleCallbackInfo(fcn, usr);
85  if (cbInfo)
86  {
87  myCommInterface->removeMessageCallback(mType, oldStyleConverterCallback, cbInfo);
88  removeAndDeleteOldStyleCallbackInfo(cbInfo);
89  }
90  }
92 
93  template<typename messageType>
94  void addCommandRadioMessageCallback(const messageType& mType, DtMessageCallbackFcn fcn, void* usr)
95  {
96  addMessageCallback(mType, fcn, usr);
97  }
98 
99  template<typename messageType>
100  void removeCommandRadioMessageCallback(const messageType& mType, DtMessageCallbackFcn fcn, void* usr)
101  {
102  removeMessageCallback(mType, fcn, usr);
103  }
104 
105  virtual void addRadioMessageCallback(const DtAdminContentMessageType& type, DtMessageCallbackFcn fcn, void* usr);
106  virtual void removeRadioMessageCallback(const DtAdminContentMessageType& type, DtMessageCallbackFcn fcn, void* usr);
107 
108  virtual void addRadioMessageCallback(const DtSimReportMessageType& type, DtMessageCallbackFcn fcn, void* usr);
109  virtual void removeRadioMessageCallback(const DtSimReportMessageType& type, DtMessageCallbackFcn fcn, void* usr);
110 
111  virtual void addRadioMessageCallback(const DtSimTaskMessageType& type, DtMessageCallbackFcn fcn, void* usr);
112  virtual void removeRadioMessageCallback(const DtSimTaskMessageType& type, DtMessageCallbackFcn fcn, void* usr);
113 
114  virtual void addRadioMessageCallback(const DtSetMessageType& type, DtMessageCallbackFcn fcn, void* usr);
115  virtual void removeRadioMessageCallback(const DtSetMessageType& type, DtMessageCallbackFcn fcn, void* usr);
116 
118 
119  virtual void addTaskMessageCallback(DtMessageCallbackFcn fcn, void* usrData);
120  virtual void removeTaskMessageCallback(DtMessageCallbackFcn fcn, void* usrData);
122 
124 
125  virtual void addSetDataMessageCallback(DtMessageCallbackFcn fcn, void* usrData);
126  virtual void removeSetDataMessageCallback(DtMessageCallbackFcn fcn, void* usrData);
128 
130 
131  virtual void addReportMessageCallback(DtMessageCallbackFcn fcn, void* usrData);
132  virtual void removeReportMessageCallback(DtMessageCallbackFcn fcn, void* usrData);
134 
135  static DtSimBaseRadio* create(DtVrfObject* vrfObject, DtVrfObjectManager* objManager);
136 
138  static DtCompatibilityRadio* isCommandChannelRadio(DtSimBaseRadio* radio);
139 
140 
141 protected:
142  typedef std::pair<DtMessageCallbackFcn, void*> DtOldStyleCallbackInfo;
143 
146  static void oldStyleConverterCallback(const DtVrfObjectMessage* msg, void* usr);
147 
150  virtual DtOldStyleCallbackInfo* addOldStyleCallbackInfo(DtMessageCallbackFcn fcn, void* usr);
151 
154  virtual DtOldStyleCallbackInfo* findOldStyleCallbackInfo(DtMessageCallbackFcn fcn, void* usr);
155 
158  virtual void removeAndDeleteOldStyleCallbackInfo(DtOldStyleCallbackInfo* cbInfo);
159 
160 protected:
162 
163  typedef std::list<DtOldStyleCallbackInfo*> DtOldStyleCallbackInfoList;
165 };

Document ID: Generated on Mon Apr 8 19:24:01 EDT 2013 from SVN revision 125877
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)