VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfRadio.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 
17 #include <deque>
18 
19 class DtVrfObject;
20 class DtVrfRadio;
23 class DtCommModel;
25 class DtSettingsObject;
26 
29 {
33  int radioId;
34 };
35 
38 
44 {
45 private:
47 
48  DtVrfRadio();
49  DtVrfRadio(const DtVrfRadio& orig);
50  DtVrfRadio& operator=(const DtVrfRadio& orig);
52 
53 public:
55  virtual ~DtVrfRadio();
56 
58  virtual bool init();
59 
62  virtual DtString type() const;
63 
67  virtual bool sendMessage(DtVrfObjectMessage* message);
68 
71 
72  virtual void addMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr);
73  virtual void removeMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr);
75 
76  template<typename messageType>
77  void addMessageCallback(const messageType& type, DtVrfObjectMessageCallbackFcn fcn, void* usr)
78  {
79  myMessageExecutive.addMessageCallback(type, fcn, usr);
80  }
81 
82  template<typename messageType>
83  void removeMessageCallback(const messageType& type, DtVrfObjectMessageCallbackFcn fcn, void* usr)
84  {
85  myMessageExecutive.addMessageCallback(type, fcn, usr);
86  }
87 
93  virtual bool readyToSend() const;
94 
97  virtual void tick();
98 
102  virtual void receiveMessage(const DtVrfObjectMessage* message);
103 
106  virtual void setReadyToSend(bool val);
107 
109  virtual DtVrfObject* vrfObject();
110 
112  virtual int radioId() const;
113 
116  virtual double sampleRate() const;
117 
122 
123  virtual const DtVrfRadioTransmitter* radioTransmitter() const;
124  virtual DtVrfRadioTransmitter* radioTransmitter();
126 
128  static DtVrfRadio* create(DtRadioCreationParams& params);
129 
131  static void setFactory(DtVrfRadioFactory* factory);
133  static DtVrfRadio* createRadio(const DtString& typeString, DtVrfObject* vrfObject,
134  const DtVrfRadioDescriptor* descriptor, int radioId);
135 
145  static void readCommModelSettingsCallback(
146  const DtSettingsObject* settings, void* usr);
147  virtual void processReadCommModelSettings(const DtSettingsObject* settings);
148 
149 protected:
151 
160  typedef std::deque<DtVrfObjectMessagePtr> DtMessageQueue;
162 };
Definition: stringKeyFactory.h:80
DtStringKeyFactoryWithParam< DtVrfRadio, DtRadioCreationParams & > DtVrfRadioFactory
Factory for creating DtRadio subclasses.
Definition: vrfRadio.h:37
void addMessageCallback(const messageType &type, DtVrfObjectMessageCallbackFcn fcn, void *usr)
Definition: vrfRadio.h:77
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Definition: vrfRadioTransmitter.h:24
Base class for all communication models in VR-Forces.
Definition: commModel.h:57
DtVrfRadioTransmitter * myRadioTransmitter
Definition: vrfRadio.h:157
const DtVrfRadioDescriptor * radioDescriptor
Definition: vrfRadio.h:31
Definition: settingsObject.h:27
std::deque< DtVrfObjectMessagePtr > DtMessageQueue
Definition: vrfRadio.h:160
Callback manager for DtVrfObjectMessage receipt.
Definition: vrfObjectMessageExecutive.h:26
DtMessageQueue myMessageQueuedToSend
Definition: vrfRadio.h:161
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
Factory templates DtStringKeyFactory and DtStringKeyFactoryWithParam.
DtVrfObjectMessageExecutive myMessageExecutive
Definition: vrfRadio.h:154
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
bool myReadyToSend
Definition: vrfRadio.h:159
const DtVrfRadioDescriptor & myRadioDescriptor
Definition: vrfRadio.h:153
void(* DtVrfObjectMessageCallbackFcn)(const DtVrfObjectMessage *msg, void *usr)
This class is a convenience object for callback functions on DtVrfObjectMessages particularly those d...
Definition: vrfObjectMessageTypeCallbackMap.h:29
DtVrfObject * myVrfObject
Definition: vrfRadio.h:152
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
DtCommModel * myCommModel
The radio network which this radio is part of.
Definition: vrfRadio.h:156
DtVrfObject * vrfObject
Definition: vrfRadio.h:30
void removeMessageCallback(const messageType &type, DtVrfObjectMessageCallbackFcn fcn, void *usr)
Definition: vrfRadio.h:83
Descriptor base class for DtRadio instances.
Definition: vrfRadioDescriptor.h:37
Base class for any radios on VrfObjects.
Definition: vrfRadio.h:43
int myRadioId
Definition: vrfRadio.h:158
static DtVrfRadioFactory * theFactory
Definition: vrfRadio.h:150
Structure of data passed to the DtRadio constructor.
Definition: vrfRadio.h:28
int radioId
The unique index of this radio on it&#39;s host entity.
Definition: vrfRadio.h:33

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)