VR-Forces Developer's Guide
 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 DtLocalObject;
20 class DtVrfRadio;
23 class DtCommModel;
25 class DtSettingsObject;
26 
29 {
32 };
33 
36 
42 {
43 private:
45 
46  DtVrfRadio();
47  DtVrfRadio(const DtVrfRadio& orig);
48  DtVrfRadio& operator=(const DtVrfRadio& orig);
50 
51 public:
53  virtual ~DtVrfRadio();
54 
56  virtual bool init();
57 
60  virtual DtString type() const;
61 
65  virtual bool sendMessage(DtVrfObjectMessage* message);
66 
69 
70  virtual void addMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr);
71  virtual void removeMessageCallback(DtVrfObjectMessageCallbackFcn fcn, void* usr);
73 
74  template<typename messageType>
75  void addMessageCallback(const messageType& type, DtVrfObjectMessageCallbackFcn fcn, void* usr)
76  {
77  myMessageExecutive.addMessageCallback(type, fcn, usr);
78  }
79 
80  template<typename messageType>
81  void removeMessageCallback(const messageType& type, DtVrfObjectMessageCallbackFcn fcn, void* usr)
82  {
83  myMessageExecutive.addMessageCallback(type, fcn, usr);
84  }
85 
91  virtual bool readyToSend() const;
92 
95  virtual void tick();
96 
100  virtual void receiveMessage(const DtVrfObjectMessage* message);
101 
104  virtual void setReadyToSend(bool val);
105 
107  virtual DtLocalObject* vrfObject();
108 
111  virtual double sampleRate() const;
112 
117 
118  virtual const DtVrfRadioTransmitter* radioTransmitter() const;
119  virtual DtVrfRadioTransmitter* radioTransmitter();
121 
123  static DtVrfRadio* create(DtRadioCreationParams& params);
124 
126  static void setFactory(DtVrfRadioFactory* factory);
128  static DtVrfRadio* createRadio(const DtString& typeString, DtLocalObject* vrfObject,
129  const DtVrfRadioDescriptor* descriptor);
130 
140  static void readCommModelSettingsCallback(
141  const DtSettingsObject* settings, void* usr);
142  virtual void processReadCommModelSettings(const DtSettingsObject* settings);
143 
145  virtual int radioId() const;
146 
147 protected:
149 
157  typedef std::deque<DtVrfObjectMessagePtr> DtMessageQueue;
159 };
Definition: stringKeyFactory.h:80
DtStringKeyFactoryWithParam< DtVrfRadio, DtRadioCreationParams & > DtVrfRadioFactory
Factory for creating DtRadio subclasses.
Definition: vrfRadio.h:35
void addMessageCallback(const messageType &type, DtVrfObjectMessageCallbackFcn fcn, void *usr)
Definition: vrfRadio.h:75
Definition: vrfRadioTransmitter.h:25
DtLocalObject * vrfObject
Definition: vrfRadio.h:30
Base class for all communication models in VR-Forces. A DtCommModel is the central point for modeling...
Definition: commModel.h:58
DtVrfRadioTransmitter * myRadioTransmitter
Definition: vrfRadio.h:155
const DtVrfRadioDescriptor * radioDescriptor
Definition: vrfRadio.h:31
Definition: settingsObject.h:27
std::deque< DtVrfObjectMessagePtr > DtMessageQueue
Definition: vrfRadio.h:157
Callback manager for DtVrfObjectMessage receipt. Callbacks can be registered on various attributes of...
Definition: vrfObjectMessageExecutive.h:26
DtMessageQueue myMessageQueuedToSend
Definition: vrfRadio.h:158
#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:152
The base class for all messages to/from a specific DtVrfObject. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
DtLocalObject * myVrfObject
Definition: vrfRadio.h:150
bool myReadyToSend
Definition: vrfRadio.h:156
const DtVrfRadioDescriptor & myRadioDescriptor
Definition: vrfRadio.h:151
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
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:154
void removeMessageCallback(const messageType &type, DtVrfObjectMessageCallbackFcn fcn, void *usr)
Definition: vrfRadio.h:81
Descriptor base class for DtRadio instances. A descriptor tells what type of radio to create as well ...
Definition: vrfRadioDescriptor.h:37
Base class for any radios on VrfObjects. A DtVrfRadio acts as the interface between an entity and a D...
Definition: vrfRadio.h:41
static DtVrfRadioFactory * theFactory
Definition: vrfRadio.h:148
Structure of data passed to the DtRadio constructor.
Definition: vrfRadio.h:28
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)