VR-Exchange 2.1 API Documentation
hlaBroker/objectTrans.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 *********************************************************************/
4 #pragma once
5 
9 
10 #include "translator.h"
11 #include <map>
12 #include <list>
13 
14 class DtReflectedObject;
15 class DtStateRepository;
16 class DtString;
17 
18 
19 namespace MAKVrExchange
20 {
21 
22  class DtPortalMessage;
23  class DtPortalReflectedObject;
24 
25  namespace DtHlaBroker
26  {
27 
28  class DtBrokerObject;
29 
34  {
35  public:
37  typedef enum {
38  none = 0,
41  remove}
42  UpdateType;
43 
44  typedef void (*BrokerObjectCbPtr)
45  ( const DtBrokerObject *brokerObjectPointer,
46  void *userData);
47 
48  public:
49 
52 
54  virtual ~DtObjectTranslator();
55 
56  private:
57 
60 
62  DtObjectTranslator& operator=(const DtObjectTranslator& other);
63 
64  public:
65 
68  virtual DtBrokerObject *releaseBrokerObject(
69  const DtReflectedObject* reflectedObj);
70  virtual DtBrokerObject *releaseBrokerObject(
71  const DtPortalReflectedObject* reflectedObj);
72 
76  virtual DtBrokerObject *findBrokerObject(
77  const DtReflectedObject* reflectedObj);
78  virtual DtBrokerObject *findBrokerObject(
79  const DtPortalReflectedObject* reflectedObj);
80 
83  virtual DtBrokerObject *createBrokerObject(
84  const DtReflectedObject* reflectedObj);
85  virtual DtBrokerObject *createBrokerObject(
86  const DtPortalReflectedObject* reflectedObj);
87 
91  virtual bool isHlaDiscoverable(const DtReflectedObject* reflectedObj);
92 
96  virtual bool isPortalDiscoverable(const DtPortalReflectedObject* reflectedObj);
97 
99  virtual void removeHlaObject(const DtReflectedObject* reflectedObj);
100 
103  virtual void tick() = 0;
104 
105  virtual void printIncomingOutgoingStateReps(
106  const DtPortalMessage& incoming,
107  const DtStateRepository& outgoing,
108  const DtString& objectName);
109 
110  virtual void printIncomingOutgoingStateReps(
111  const DtStateRepository& incoming,
112  const DtPortalMessage& outgoing,
113  const DtString& objectName);
114 
116  virtual const char* virtualTranslatorName() const;
117 
118  virtual void addObjectDiscoveredCallback(
119  BrokerObjectCbPtr funcPtr, void *userData);
120 
121  virtual void addObjectUpdatedCallback(
122  BrokerObjectCbPtr funcPtr, void *userData);
123 
124  virtual void addObjectRemovedCallback(
125  BrokerObjectCbPtr funcPtr, void *userData);
126 
127 
128  public:
129 
130  static const char* translatorName()
131  { return "Base Object Translator"; }
132 
133  protected:
134 
136  virtual void callObjectDiscoverCallbacks(const DtBrokerObject* brokerObject);
137 
139  virtual void callObjectUpdateCallbacks(const DtBrokerObject* brokerObject);
140 
142  virtual void callObjectRemoveCallbacks(const DtBrokerObject* brokerObject);
143 
145  virtual void createPortalPublisher(DtBrokerObject* brokerObject) = 0;
146  virtual void createHlaPublisher(DtBrokerObject* brokerObject) = 0;
147 
150  virtual void deletePortalPublisher(DtBrokerObject* brokerObject) = 0;
151  virtual void deleteHlaPublisher(DtBrokerObject* brokerObject) = 0;
152 
156  virtual bool isPortalPublishable(const DtBrokerObject* brokerObject) const = 0;
157 
162  virtual bool isHlaPublishable(const DtBrokerObject* brokerObject) const = 0;
163 
165  virtual void removePortalObject(const DtPortalReflectedObject* reflectedObj);
166 
167  protected:
168 
169  typedef std::map<const DtReflectedObject*, DtBrokerObject *>
171  typedef std::map<const DtPortalReflectedObject*, DtBrokerObject *>
173 
174  struct CallbackPair { BrokerObjectCbPtr fcn; void *userData; };
175  typedef std::list<CallbackPair> CallbackPairList;
176 
180 
183  };
184  }
185 }
186 

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)