VR-Forces 5.0.2 Developer's Guide
 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 #include <tbb/spin_rw_mutex.h>
19 
21 class DtCommModel;
23 class DtVrfRadio;
24 class DtVrfObjectMessage;
25 
28 {
31 };
32 
35 
39 
41 const int DtRadioIdAny = -1;
42 
59 {
60 private:
62 
63  DtCommModel();
64  DtCommModel(const DtCommModel& orig);
65  DtCommModel& operator=(const DtCommModel& orig);
67 
68 protected:
72  virtual bool init();
73 
74 public:
77  static DtCommModel* create(DtCommModelCreationParams& params);
78 
79  virtual ~DtCommModel();
80 
84  virtual DtString type() const;
85 
89  virtual void registerRadio(DtVrfRadio* radio);
91  virtual void unregisterRadio(DtVrfRadio* radio);
92 
98  virtual void sendMessage(DtVrfObjectMessage* message, DtVrfRadio* sendingRadio);
99 
102  virtual void tick();
103 
105  static void setFactory(DtCommModelFactory* factory);
107  static DtCommModel* createCommModel(const DtString& typeString,
108  DtSimulationServices* simManager, const DtCommModelDescriptor* descriptor);
109 
112  virtual bool publishTransmitters() const;
113 
115  virtual bool sendReceivedCommMessageOnBroadcast() const;
116 
119  virtual void clearPendingRadioMessages();
120 
121 protected:
123  virtual DtVrfRadio* findRadio(const DtUUID& object, int radioId) const;
124 
126  virtual DtVrfRadio* findRadio(const DtEntityIdentifier& entityId, int radioId) const;
127 
133  virtual void deliverMessageToRecipients(const DtVrfObjectMessage* message);
134 
135 protected:
137 
140 
141  typedef std::multimap<DtUUID, DtVrfRadio*> DtRadioMap;
143  mutable tbb::spin_rw_mutex myMutex;
144 };
UUID is a unique ID wrapper class.
Definition: rwUUID.h:229
Definition: stringKeyFactory.h:80
DtSimulationServices * simulationServices
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. A DtCommModel is the central point for modeling...
Definition: commModel.h:58
Contains the DtUUID class declaration.
DtSimulationServices * mySimulationServices
Definition: commModel.h:138
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
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. A descriptor tells what type of radio to create as well ...
Definition: commModelDescriptor.h:33
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. Various subclasses of this class will...
Definition: vrfObjectMessage.h:30
DtRadioMap myRadios
Definition: commModel.h:142
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:90
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
const DtCommModelDescriptor * myDescriptor
Definition: commModel.h:139
tbb::spin_rw_mutex myMutex
Definition: commModel.h:143
Base class for any radios on VrfObjects. A DtVrfRadio acts as the interface between an entity and a D...
Definition: vrfRadio.h:41
std::multimap< DtUUID, DtVrfRadio * > DtRadioMap
Definition: commModel.h:141
static DtCommModelFactory * theFactory
Definition: commModel.h:136

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)