VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
commModel.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
10 
11 #pragma once
12 
14 #include "vrfutil/rwUUID.h"
15 #include <vlpi/entityIdentifier.h>
17 #include <map>
18 
19 class DtSimManager;
20 class DtCommModel;
22 class DtVrfRadio;
23 class DtVrfObjectMessage;
24 class DtVrfObject;
25 
28 {
31 };
32 
35 
39 
41 const int DtRadioIdAny = -1;
42 
58 {
59 private:
61 
62  DtCommModel();
63  DtCommModel(const DtCommModel& orig);
64  DtCommModel& operator=(const DtCommModel& orig);
66 
67 protected:
71  virtual bool init();
72 
73 public:
76  static DtCommModel* create(DtCommModelCreationParams& params);
77 
78  virtual ~DtCommModel();
79 
83  virtual DtString type() const;
84 
88  virtual void registerRadio(DtVrfRadio* radio);
90  virtual void unregisterRadio(DtVrfRadio* radio);
91 
97  virtual void sendMessage(DtVrfObjectMessage* message, DtVrfRadio* sendingRadio);
98 
101  virtual void tick();
102 
104  static void setFactory(DtCommModelFactory* factory);
106  static DtCommModel* createCommModel(const DtString& typeString,
107  DtSimManager* simManager, const DtCommModelDescriptor* descriptor);
108 
111  virtual bool publishTransmitters() const;
112 
115  virtual void clearPendingRadioMessages();
116 
117 protected:
119  virtual DtVrfRadio* findRadio(const DtUUID& object, int radioId) const;
120 
122  virtual DtVrfRadio* findRadio(const DtEntityIdentifier& entityId, int radioId) const;
123 
129  virtual void deliverMessageToRecipients(const DtVrfObjectMessage* message);
130 
131 protected:
133 
136 
137  typedef std::multimap<DtUUID, DtVrfRadio*> DtRadioMap;
139 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:222
Definition: stringKeyFactory.h:80
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
DtSimManager * simManager
Definition: commModel.h:29
T_CreationType *(* DtCreatorFcn)(T_ConstructorParam)
Definition: stringKeyFactory.h:84
Structure of data passed to the DtRadio constructor.
Definition: commModel.h:27
Base class for all communication models in VR-Forces.
Definition: commModel.h:57
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
DtSimManager * mySimManager
Definition: commModel.h:134
const DtCommModelDescriptor * commModelDescriptor
Definition: commModel.h:30
Factory templates DtStringKeyFactory and DtStringKeyFactoryWithParam.
DtStringKeyFactoryWithParam< DtCommModel, DtCommModelCreationParams & > DtCommModelFactory
Factory for creating DtCommModel subclasses.
Definition: commModel.h:34
const int DtRadioIdAny
A radio ID used to indicate that any radio is acceptable, regardless of ID.
Definition: commModel.h:41
Descriptor base class for DtRadio instances.
Definition: commModelDescriptor.h:37
DtCommModelFactory::DtCreatorFcn DtCommModelCreatorFcn
Function signature for the creator method for DtCommModel subclasses that is used when registering wi...
Definition: commModel.h:38
The base class for all messages to/from a specific DtVrfObject.
Definition: vrfObjectMessage.h:30
DtRadioMap myRadios
Definition: commModel.h:138
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
const DtCommModelDescriptor * myDescriptor
Definition: commModel.h:135
Base class for any radios on VrfObjects.
Definition: vrfRadio.h:43
std::multimap< DtUUID, DtVrfRadio * > DtRadioMap
Definition: commModel.h:137
static DtCommModelFactory * theFactory
Definition: commModel.h:132

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)