VR-Exchange 2.8 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
rprBroker.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2017 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <broker/vrlBroker.h>
15 #include <vl/exerciseConn.h>
16 
17 namespace MAKVrExchange
18 {
19 
20  class DtBrokerObject;
21  class DtObjectTranslator;
22  class DtGenericUserInterface;
23  class DtPortalReflectedObject;
24  class DtInteractionTranslator;
25 
26  namespace DtRprBroker
27  {
28 
29  class DtRprBrokerInitializer;
30 
36  class DT_DLL_RPRBROKER DtRprBroker : public DtVrlBroker<DtExerciseConn>
37  {
38  public:
39 
41  static DtBroker* create( DtBrokerInitializer* init );
42 
43  protected:
44 
47  DtRprBroker();
48 
49  public:
50 
52  virtual ~DtRprBroker();
53 
57  virtual void tick();
58 
61  virtual void processDiscoveryTimeout();
62 
66  virtual DtString portalNameFind( const DtString& name ) const;
67 
69  virtual void updateSimTime() const;
70 
72  virtual DtRprBrokerInitializer* rprInitializer();
73  virtual const DtRprBrokerInitializer* rprInitializer() const;
74 
76  virtual bool fillOutgoingIds() const;
77 
79  virtual bool usePersistentIds() const;
80 
83  virtual bool useHlaObjectIdForMarkingText() const;
84 
87  virtual bool useMarkingTextForHlaObjectId() const;
88 
90  virtual int outgoingSiteId() const;
91 
93  virtual int outgoingHostId() const;
94 
96  virtual DtU16 useNextEntityId();
97 
100  virtual int getPersistentId( const DtString& name );
101 
103  virtual void setPersistentId( const DtString& name, int );
104 
105  virtual int heartbeat() const { return myHeartbeat; }
106  virtual void setHeartbeat( int i ) { myHeartbeat = i; }
107 
108  virtual bool isDiscoveryTimeoutActive() const { return myDiscoveryTimeoutActiveFlag; }
109 
113  static void setGlobalIdMapperCreator( DtGlobalIdMapperCreator func );
114 
117  static DtGlobalIdMapperCreator globalIdMapperCreator();
118 
119  virtual DtGlobalIdMapper* globalIdMapper();
120 
121  protected:
122 
127  virtual void initialize( DtRprBrokerInitializer* init );
128 
130  virtual void setupTranslators( DtRprBrokerInitializer* init );
131 
133  virtual void logBrokerSettings( DtBrokerInitializer* init );
134 
136  virtual void startBroker();
137 
139  virtual void initHlaConnection( const DtRprBrokerInitializer& init );
140 
143  virtual void initializeTranslators( DtStringSet& failedTranslators );
144 
147  virtual void initWholeFomTranslation();
148 
151  virtual void initGenericObjectTranslators( DtStringSet& failedTranslators );
152 
155  virtual void initGenericInteractionTranslators( DtStringSet& failedTranslators );
156 
158  virtual bool loadGenericObjectTranslator( const DtString& objName );
159 
161  virtual bool loadGenericInteractionTranslator( const DtString& interName );
162 
164  virtual void initPortalNameMapper( const DtFilename& mapFile);
165 
166  // Used for persisting entity Ids.
167  virtual void loadEntityNumMappingFile();
168  virtual void saveEntityNumMappingFile();
169 
172  virtual void shutdown();
173 
174  private:
175 
177  DtRprBroker( const DtRprBroker& other );
178 
180  DtRprBroker& operator = ( const DtRprBroker& other );
181 
182  protected:
183 
185 
189  std::vector<DtString> myGenericInteractionsToTranslateSet;
190  std::vector<DtString> myGenericObjectsToTranslateSet;
191 
194 
195  typedef std::map<DtString,int> PersistentEntityIdMap;
197 
198  std::map<DtString,DtString> myPortalNameMapper;
199 
200  };
201 
202 
203  inline DtU16 DtRprBroker::useNextEntityId()
204  {
205  return myNextEntityId++;
206  }
207 
208  }
209 }
std::vector< DtString > myGenericObjectsToTranslateSet
Definition: rprBroker.h:190
A class to initialize DtBroker instances.
Definition: brokerInitializer.h:35
DtVrlBroker is the base class for all brokers based on a VR-Link connection.
Definition: vrlBroker.h:20
virtual bool isDiscoveryTimeoutActive() const
Definition: rprBroker.h:108
int myHeartbeat
Definition: rprBroker.h:186
std::vector< DtString > myGenericInteractionsToTranslateSet
Definition: rprBroker.h:189
std::map< DtString, int > PersistentEntityIdMap
Definition: rprBroker.h:195
DtGlobalIdMapper * myGlobalIdMapper
Definition: rprBroker.h:188
Implements a DtBroker for the HLA Protocol.
Definition: rprBroker.h:36
DtGlobalIdMapper *(* DtGlobalIdMapperCreator)()
A Function pointer for a GlobalIdMapper creator function.
Definition: rprBroker/rprBroker/globalIdMapper.h:29
Contains the DtVrlBroker class declaration.
static DtGlobalIdMapperCreator theGlobalIdMapperCreator
Definition: rprBroker.h:184
bool myDiscoveryTimeoutActiveFlag
Definition: rprBroker.h:193
Base class for all broker objects.
Definition: broker.h:58
DtGlobalIdMapper is used by the HLA Broker to convert between Portal ObjectIds and HLA Object IDs...
Definition: rprBroker/rprBroker/globalIdMapper.h:35
Contains the DtTranslatorFactory class declaration.
#define DT_DLL_RPRBROKER
Definition: brokers/rprBroker/rprBroker/dllExport.h:22
virtual int heartbeat() const
Definition: rprBroker.h:105
std::map< DtString, DtString > myPortalNameMapper
Definition: rprBroker.h:198
DtU16 myNextEntityId
Definition: rprBroker.h:187
PersistentEntityIdMap myNameToEntityNum
Definition: rprBroker.h:196
Parses the MTL file, and reads command line input to produce a set of parameters useful for DtRprBrok...
Definition: rprBrokerInitializer.h:33
DtTime myDiscoveryTimeoutActivationTime
Definition: rprBroker.h:192
virtual void setHeartbeat(int i)
Definition: rprBroker.h:106

Document ID: Generated on Tue Aug 16 16:15:26 EDT 2022 from SVN revision 245901
Copyright © 2005-2022 MAK Technologies. All Rights Reserved (www.mak.com)