VR-Exchange 2.1 API Documentation
tenaBroker/entityTrans.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2012 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <tenaBroker/objectTrans.h>
13 
16 #include <portal/pEntity.h>
17 
18 #include <vl/reflEntList.h>
19 #include <vl/entityPub.h>
20 
21 #include <map>
22 
23 class DtReflectedEntity;
24 class DtEntityStateRepository;
25 
26 namespace MAKVrExchange
27 {
28 
29  namespace DtTenaBroker
30  {
31 
36  {
37  public:
38 
39  typedef void (*callbackFunctionType)( DtReflectedEntity* object, void* userData );
40 
44  DtEntityTranslator( DtTenaBroker* tenaBroker );
45 
47  virtual ~DtEntityTranslator();
48 
50  virtual void tick();
51 
54  virtual const char* virtualTranslatorName() const;
55 
59  static const char* translatorName() { return "Entity State"; }
60 
62  virtual void enableTranslator( bool enabled );
63 
65  virtual DtPortalEntity* translate( DtPortalEntity* destination,
66  const DtEntityStateRepository& source );
67 
69  virtual DtEntityStateRepository* translate(
70  DtEntityStateRepository* destination, const DtPortalEntity& source );
71 
72  protected:
73 
75  virtual void discoverTenaObject( DtReflectedEntity* obj );
76 
78  virtual void discoverPortalObject( const DtPortalReflectedEntity& obj );
79 
83  virtual void receiveTenaUpdate( DtReflectedEntity* obj );
84 
88  virtual void receivePortalUpdate( const DtPortalReflectedEntity& obj );
89 
91  virtual void createTenaPublisher( DtBrokerObject* brokerObject );
92 
94  virtual void createPortalPublisher( DtBrokerObject* brokerObject );
95 
97  virtual void deleteTenaPublisher( DtBrokerObject* brokerObject );
98 
100  virtual void deletePortalPublisher( DtBrokerObject* brokerObject );
101 
104  virtual bool isTenaPublishable( const DtBrokerObject* brokerObject ) const;
105 
108  virtual bool isPortalPublishable( const DtBrokerObject* brokerObject ) const;
109 
111  virtual void syncTenaDeadReconedValues( DtBrokerObject* brokerObject );
112 // static void synchronizeDeadReconedValues( DtPortalEntity* destination,
113 // const DtEntityStateRepository& source );
114 
116  virtual void syncPortalDeadReconedValues( DtBrokerObject* brokerObject );
117 // static void synchronizeDeadReconedValues( DtEntityStateRepository* destination,
118 // const DtPortalEntity& source );
119 
120  protected:
121 
124  static bool tenaDiscoveryCriteria( DtReflectedObject* obj, void* usr );
125 
128  static bool portalDiscoveryCriteria( const DtPortalReflectedEntity* obj, void* usr );
129 
132  static void tenaAdditionCallback( DtReflectedEntity* obj, void* usr );
133 
136  static void tenaUpdateCallback( DtReflectedEntity* obj, void* usr );
137 
140  static void tenaRemovalCallback( DtReflectedEntity* obj, void* usr );
141 
144  static void portalObjectAddedCb( const DtPortalReflectedEntity& obj, void* usr );
145 
148  static void portalObjectUpdatedCb( const DtPortalReflectedEntity& obj, void* usr );
149 
152  static void portalObjectDeletedCb( const DtPortalReflectedEntity& obj, void* usr );
153 
154  private:
155 
157  DtEntityTranslator( const DtEntityTranslator& other );
158 
160  DtEntityTranslator& operator = ( const DtEntityTranslator& other );
161 
163  int operator == ( const DtEntityTranslator& other ) const;
164 
166  int operator != ( const DtEntityTranslator& other ) const;
167 
168  protected:
169 
170  DtReflectedEntityList* myTenaReflectedList;
172 
175 
176  };
177 
178  }
179 }

Document ID: Generated on Tue Aug 7 22:07:13 EDT 2012 from SVN revision 117874
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)