VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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/simRadio.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 DtSimRadio* create(DtVrfObject* vrfObject, DtVrfObjectManager* objManager);
136 
138  static DtCompatibilityRadio* isCommandChannelRadio(DtSimRadio* 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 };
DtOldStyleCallbackInfoList myOldStyleCallbackInfoList
Definition: compatibilityRadio.h:164
virtual bool isLocal() const =0
Radio net calls this to deliver a message to this radio.
virtual void removeTaskMessageCallback(DtMessageCallbackFcn fcn, void *usrData)=0
virtual DtString type() const =0
Returns the type of radio object.
virtual void removeReportMessageCallback(DtMessageCallbackFcn fcn, void *usrData)=0
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
void addCommandRadioMessageCallback(const messageType &mType, DtMessageCallbackFcn fcn, void *usr)
Definition: compatibilityRadio.h:94
virtual void removeRadioMessageCallback(const DtAdminContentMessageType &type, DtMessageCallbackFcn fcn, void *usr)=0
class DtSimRadio:
Definition: simRadio.h:25
virtual void setCommandChannel(int v)
Does nothing. Provided for compile compatibility only.
Definition: compatibilityRadio.h:62
virtual void removeSetDataMessageCallback(DtMessageCallbackFcn fcn, void *usrData)=0
virtual bool isCommand() const =0
Definition: vrfObjectMessageTypeTemplate.h:24
virtual bool init()
This calls createUnitReceiverTransmitter().
virtual void addSetDataMessageCallback(DtMessageCallbackFcn fcn, void *usrData)=0
Callback which is called for every set data message received by this entity.
virtual void addTaskMessageCallback(DtMessageCallbackFcn fcn, void *usrData)=0
Callback which is called for every task message received by this entity.
virtual void sendToNet(DtVrfObjectMessage *msg)=0
Call this to put a message on the net.
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
virtual void addRadioMessageCallback(const DtAdminContentMessageType &type, DtMessageCallbackFcn fcn, void *usr)=0
Define constants for types of tasks, sets, admin messages, reports, and sim commands (all sent via ra...
virtual void addReportMessageCallback(DtMessageCallbackFcn fcn, void *usrData)=0
Callback which is called for every report message received by this entity.
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
DtVrfObjectCommunicationInterface * myCommInterface
Definition: compatibilityRadio.h:161
DtSimRadio & operator=(const DtSimRadio &orig)
assignment operator not implemented.
class DtVrfObjectManager:
Definition: vrfObjectManager.h:202
std::pair< DtMessageCallbackFcn, void * > DtOldStyleCallbackInfo
Definition: compatibilityRadio.h:142
std::list< DtOldStyleCallbackInfo * > DtOldStyleCallbackInfoList
Definition: compatibilityRadio.h:163
void removeCommandRadioMessageCallback(const messageType &mType, DtMessageCallbackFcn fcn, void *usr)
Definition: compatibilityRadio.h:100
The central class of a DtVrfObject for all communications to and from the object. ...
Definition: vrfObjectCommunicationInterface.h:45
void(* DtMessageCallbackFcn)(DtSimMessage *msg, void *usr)
Message callback function signature.
Definition: messageExecutive.h:21
void addMessageCallback(const messageType &mType, DtMessageCallbackFcn fcn, void *usr)
//! Add/remove corresponding callbacks with the DtVrfObjectCommunicationInterface.
Definition: compatibilityRadio.h:75
DtCompatibilityRadio.
Definition: compatibilityRadio.h:30
void removeMessageCallback(const messageType &mType, DtMessageCallbackFcn fcn, void *usr)
Definition: compatibilityRadio.h:82
virtual int commandChannel() const
Definition: compatibilityRadio.h:63

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)