VR-Exchange 2.6 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
rprBroker/rprBroker/entityTranslator.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 
13 #include <vl/reflectedEntityList.h>
14 #include <vl/entityPublisher.h>
15 #include <map>
16 
17 class DtReflectedEntity;
18 class DtReflectedEntityList;
19 class DtReflectedDIGuyObject;
20 class DtEntityStateRepository;
21 class DtReflectedDIGuyObjectList;
22 class DtDIGuyObjectStateRepository;
23 
24 #define ENTITY_TEMPLATE_ARGS \
25  DtPortalEntity, DtPortalReflectedEntity, \
26  DtReflectedEntity, DtReflectedEntityList, \
27  DtEntityStateRepository, DtEntityPublisher
28 
29 namespace MAKVrExchange
30 {
31 
32  class DtPortalEntity;
33 
34  namespace DtRprBroker
35  {
36 
39  template <>
40  DT_DLL_RPRBROKER DtEntityPublisher*
42  const DtPortalReflectedEntity* refObj, const DtString& name );
43 
47  : public DtRprObjectTranslator<ENTITY_TEMPLATE_ARGS>
48  {
49  public:
50 
52  Dt_DEF_TRANSLATOR_NAME( "Entity State" );
53 
55  DtEntityTranslator( DtBroker* broker );
56 
58  virtual ~DtEntityTranslator();
59 
63 
64  virtual void initializePortalCallbacks();
65  virtual void removePortalCallbacks();
66 
68 
69  virtual void tick();
70 
71  protected:
72 
75 
78  static bool portalDiGuyDiscoveryCriteria( const DtPortalReflectedObject* object, void* usr );
79 
81  static void portalDiGuyAddedCb( const DtPortalReflectedDiGuy& obj, void* usr );
82 
84  static void portalDiGuyUpdatedCb( const DtPortalReflectedDiGuy& obj, void* usr );
85 
87  static void portalDiGuyDeletedCb( const DtPortalReflectedDiGuy& obj, void* usr );
88 
90 
93 
95  virtual bool isPortalPublishable( const DtBrokerObject* brokerObj );
96 
98 
101 
103  virtual void discoverRprObject( DtReflectedEntity& refObj );
104 
108  virtual bool isRprPublishable( DtBrokerObject* brokerObj,
109  const DtPortalReflectedEntity* refObj );
110 
114  virtual void discoverPortalObject( const DtPortalReflectedEntity& refObj );
115 
118  virtual void discoverPortalDiGuy( const DtPortalReflectedDiGuy& obj );
119 
121  virtual void receivePortalDiGuyUpdate( const DtPortalReflectedDiGuy& obj );
122 
125  virtual void updateRprBrokerObject( DtBrokerObject* brokerObj,
126  const DtEntityStateRepository& sr );
127 
130  virtual void updatePortalBrokerObject( DtBrokerObject* brokerObj,
131  const DtPortalEntity& sr );
132 
135  virtual void updateFilteredState( DtBrokerObject* brokerObj,
136  DtPortalEntityPublisher* publisher, DtReflectedEntity* refObj );
137 
141  virtual DtString rprObjectName( const DtPortalReflectedEntity* refObj ) const;
142 
145  virtual void fillOutgoingIds( DtEntityPublisher* publisher,
146  const DtString& name );
147 
150  virtual void createRprPublisher( DtBrokerObject* brokerObject );
151 
154  virtual void removeRprObject( const DtReflectedObject& refObj );
155 
158  virtual void removePortalObject( const DtPortalReflectedEntity& reflectedObj );
159 
161  virtual void removePortalDiGuy( const DtPortalReflectedDiGuy& obj );
162 
164 
167 
170  virtual bool hasDiGuyAttributes( const DtEntityStateRepository& entity );
171 
173  virtual void syncRprArtParts( DtBrokerObject* brokerObject );
174 
176  virtual void syncRprDeadReckonedValues( DtBrokerObject* brokerObject );
177 
179  virtual void syncPortalDeadReconedValues( DtBrokerObject* brokerObject );
180 
182  virtual DtEntityStateRepository* translate(
183  DtEntityStateRepository* destination, const DtPortalEntity& source,
184  const DtPortalReflectedEntity& refObj );
185 
187  virtual DtPortalEntity* translate( DtPortalEntity* destination,
188  const DtEntityStateRepository& source, const DtReflectedEntity& refObj );
189 
191  virtual DtPortalDiGuy* translate( DtPortalDiGuy* destination,
192  const DtEntityStateRepository& source );
193 
195  virtual DtEntityStateRepository* translate(
196  DtEntityStateRepository* destination, const DtPortalDiGuy& source );
197 
199  protected:
200 
201  typedef std::map<DtEntityIdentifier,DtBrokerObject*> EntityByEntityIdMap;
204 
205  typedef std::map<DtEntityIdentifier,const DtPortalReflectedDiGuy*> DiGuyWaitList;
207 
208  typedef std::map<DtEntityIdentifier,DtPortalDiGuyPublisher*> PortalDiGuyPublisherMap;
210 
212 
213  };
214 
215  }
216 }

Document ID: Generated on Wed Jan 30 18:15:18 EST 2019 from SVN revision 195534
Copyright © 2005-2019 VT MÄK. All Rights Reserved (www.mak.com)