VR-Exchange 2.10 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
emitterSystemInterface.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2014 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #if DtTENA
11 
13 #include <vl/emitterSystemRepository.h>
14 #include <vl/globalObjectDesignator.h>
16 #include <vlTena/objectInterface.h>
17 #include <vlutil/vlMachineTypes.h>
18 #include <vlpi/entityType.h>
19 
20 #include <MAK/ElectromagneticEmission/ImmutablePublicationStatePtr.h>
21 #include <MAK/ElectromagneticEmission/SubscriptionInfoPtr.h>
22 #include <MAK/ElectromagneticEmission/ServantPtr.h>
23 #include <MAK/ElectromagneticEmission/ProxyPtr.h>
24 
25 #include <list>
26 #include <map>
27 
28 namespace MAKVrExchange
29 {
30 
31  namespace DtTenaBroker
32  {
33 
40  class DT_DLL_MAKLROM DtEmitterSystemInterface: public DtObjectInterface
41  {
42  protected:
43 
46  class DtEmitterSystemServantObject : public DtTenaServantObject
47  {
48  public:
49 
51  DtEmitterSystemServantObject( MAK::ElectromagneticEmission::ServantPtr sp):myServantPtr(sp){}
52 
54  virtual ~DtEmitterSystemServantObject() {}
55 
57  virtual const MAK::ElectromagneticEmission::ServantPtr servant() const { return myServantPtr;}
58 
60  virtual MAK::ElectromagneticEmission::ServantPtr servant() { return myServantPtr;}
61 
62  protected:
63 
64  MAK::ElectromagneticEmission::ServantPtr myServantPtr;
65 
66  };
67 
68  public:
69 
71  DtEmitterSystemInterface(DtExerciseConn* exConn);
72 
74  virtual ~DtEmitterSystemInterface();
75 
78  virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
79 
81  virtual void processServantCleanup(DtTenaServantObject* servantObject);
82 
84  virtual void subscribe();
85 
87  virtual bool needUpdate(const DtStateRepository& stateRep,
88  const DtStateRepository& asSeenByRemote,
89  bool useThresholding = true);
90 
92  virtual void decode(const DtTenaServantObject* servant,
93  DtStateRepository* stateRep)const;
94 
96  virtual void encode(DtTenaServantObject* servant,
97  const DtStateRepository* stateRep,
98  TENA::Time::Pointer timeForStamping,
99  bool forceUpdate = false);
100 
102  virtual DtReflectedObject *createReflectedObject()const;
103 
105  virtual void processAddition(MAK::ElectromagneticEmission::ProxyPtr const &proxy);
106 
108  virtual void processUpdate(MAK::ElectromagneticEmission::ProxyPtr const &proxy);
109 
111  virtual void processRemoval(MAK::ElectromagneticEmission::ProxyPtr const &proxy);
112 
113  protected:
114 
116  virtual void decode(const MAK::ElectromagneticEmission::ImmutablePublicationStatePtr pubStatePtr,
117  DtStateRepository* stateRep)const;
118 
119  private:
120 
122  DtEmitterSystemInterface(const DtEmitterSystemInterface &other);
123 
125  DtEmitterSystemInterface& operator=(const DtEmitterSystemInterface &other);
126 
127  protected:
128 
130  MAK::ElectromagneticEmission::SubscriptionInfoPtr mySubscriptionInfoPtr;
131  typedef std::map<MAK::ElectromagneticEmission::ProxyPtr, DtReflectedObject *> ProxyToRefObjMap;
132  ProxyToRefObjMap myRefEmitSysMap;
133  ProxyToRefObjMap myEmitterSystemWaitList;
134 
135  };
136 
137  }
138 }
139 
140 #endif // DtTENA
Contains the DtReflectedEmitterSystem class declaration.
Contains the DtTenaServantObject and DtObjectInterface class declarations.
#define DT_DLL_MAKLROM
Definition: makLromMapExport.h:26

Document ID: Generated on Mon May 25 18:45:12 EDT 2026 from SVN revision 289111
Copyright © 2005-2026 MAK Technologies. All Rights Reserved (www.mak.com)