VR-Exchange 2.4 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
designatorInterface.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #if DtTENA
11 
12 #pragma once
13 
15 #include <vl/globalObjectDesignator.h>
16 #include <vl/entityStateRepository.h>
17 #include <vlTena/objectInterface.h>
18 #include <vlTena/reflectedEntity.h>
19 #include <vlutil/vlMachineTypes.h>
20 #include <vlpi/entityType.h>
21 
22 #include <MAK/Designator/ImmutablePublicationStatePtr.h>
23 #include <MAK/Designator/SubscriptionInfoPtr.h>
24 #include <MAK/Designator/ServantPtr.h>
25 #include <MAK/Designator/ProxyPtr.h>
26 
27 #include <list>
28 #include <map>
29 
30 namespace MAKVrExchange
31 {
32 
33  namespace DtTenaBroker
34  {
35 
41  class DT_DLL_MAKLROM DtDesignatorInterface: public DtObjectInterface
42  {
43  protected:
44 
47  class DtDesignatorServantObject : public DtTenaServantObject
48  {
49  public:
50 
52  DtDesignatorServantObject( MAK::Designator::ServantPtr sp):myServantPtr(sp){}
53 
55  virtual ~DtDesignatorServantObject() {}
56 
58  virtual const MAK::Designator::ServantPtr servant() const { return myServantPtr;}
59 
61  virtual MAK::Designator::ServantPtr servant() { return myServantPtr;}
62 
63  protected:
64 
65  MAK::Designator::ServantPtr myServantPtr;
66 
67  };
68 
69  public:
70 
72  DtDesignatorInterface(DtExerciseConn* exConn);
73 
75  virtual ~DtDesignatorInterface();
76 
79  virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
80 
82  virtual void processServantCleanup(DtTenaServantObject* servantObject);
83 
85  virtual void subscribe();
86 
88  virtual bool needUpdate(const DtStateRepository& stateRep,
89  const DtStateRepository& asSeenByRemote,
90  bool useThresholding = true);
91 
93  virtual void decode(const DtTenaServantObject* servant,
94  DtStateRepository* stateRep)const;
95 
97  virtual void encode(DtTenaServantObject* servant,
98  const DtStateRepository* stateRep,
99  TENA::Time::Pointer timeForStamping,
100  bool forceUpdate = false);
101 
103  virtual DtReflectedObject *createReflectedObject()const;
104 
106  virtual void processAddition(MAK::Designator::ProxyPtr const &proxy);
107 
109  virtual void processUpdate(MAK::Designator::ProxyPtr const &proxy);
110 
112  virtual void processRemoval(MAK::Designator::ProxyPtr const &proxy);
113 
114  protected:
115 
117  virtual void decode(const MAK::Designator::ImmutablePublicationStatePtr pubStatePtr,
118  DtStateRepository* stateRep)const;
119 
120  private:
121 
123  DtDesignatorInterface(const DtDesignatorInterface &other);
124 
126  DtDesignatorInterface& operator=(const DtDesignatorInterface &other);
127 
128  protected:
129 
131  MAK::Designator::SubscriptionInfoPtr mySubscriptionInfoPtr;
132  typedef std::map<MAK::Designator::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
133  ProxyToRefObjMap myRefDesignatorMap;
134  ProxyToRefObjMap myDesignatorWaitList;
135 
136  };
137 
138  }
139 }
140 
141 #endif // DtTENA

Document ID: Generated on Thu Jul 23 10:25:22 EDT 2015 from SVN revision 155065
Copyright © 2005-2014 VT MÄK. All Rights Reserved (www.mak.com)