VR-Exchange 2.10 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
griddedDataInterface.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 
12 #pragma once
13 
15 #include <vl/globalObjectDesignator.h>
16 #include <vl/griddedDataRepository.h>
17 #include <vlTena/objectInterface.h>
18 #include <vlTena/griddedDataPdu.h>
19 #include <vlutil/vlMachineTypes.h>
20 
21 #include <TENA/GeocentricSpatialReferenceFrame/Pointer.h>
22 #include <MAK/GriddedData/ImmutablePublicationStatePtr.h>
23 #include <MAK/GriddedData/SubscriptionInfoPtr.h>
24 #include <MAK/GriddedData/ServantPtr.h>
25 #include <MAK/GriddedData/ProxyPtr.h>
26 
27 #include <list>
28 #include <map>
29 
30 namespace MAKVrExchange
31 {
32 
33  namespace DtTenaBroker
34  {
35 
43  class DT_DLL_MAKLROM DtGriddedDataInterface: public DtObjectInterface
44  {
45  protected:
46 
49  class DtGriddedDataServantObject : public DtTenaServantObject
50  {
51  public:
52 
54  DtGriddedDataServantObject( MAK::GriddedData::ServantPtr sp):myServantPtr(sp){}
55 
57  virtual ~DtGriddedDataServantObject() {}
58 
60  virtual const MAK::GriddedData::ServantPtr servant() const { return myServantPtr;}
61 
63  virtual MAK::GriddedData::ServantPtr servant() { return myServantPtr;}
64 
65  protected:
66 
67  MAK::GriddedData::ServantPtr myServantPtr;
68 
69  };
70 
71  public:
72 
74  DtGriddedDataInterface(DtExerciseConn* exConn);
75 
77  virtual ~DtGriddedDataInterface();
78 
81  virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
82 
84  virtual void processServantCleanup(DtTenaServantObject* servantObject);
85 
87  virtual void subscribe();
88 
90  virtual bool needUpdate(const DtStateRepository& stateRep,
91  const DtStateRepository& asSeenByRemote,
92  bool useThresholding = true);
93 
95  virtual void decode(const DtTenaServantObject* servant,
96  DtStateRepository* stateRep)const;
97 
99  virtual void encode(DtTenaServantObject* servant,
100  const DtStateRepository* stateRep,
101  TENA::Time::Pointer timeForStamping,
102  bool forceUpdate = false);
103 
105  virtual DtReflectedObject *createReflectedObject()const;
106 
108  virtual void processAddition(MAK::GriddedData::ProxyPtr const &proxy);
109 
111  virtual void processUpdate(MAK::GriddedData::ProxyPtr const &proxy);
112 
114  virtual void processRemoval(MAK::GriddedData::ProxyPtr const &proxy);
115 
116  protected:
117 
119  virtual void decode(const MAK::GriddedData::ImmutablePublicationStatePtr pubStatePtr,
120  DtStateRepository* stateRep)const;
121 
123  virtual bool needGridAxisInfo(const DtGriddedDataRepository& stateRep,
124  const DtGriddedDataRepository& asSeenByRemote, int index) const;
125 
127  virtual bool needGridDataInfo(const DtGriddedDataRepository& stateRep,
128  const DtGriddedDataRepository& asSeenByRemote, int index) const;
129 
130  private:
131 
133  DtGriddedDataInterface( const DtGriddedDataInterface& other );
134 
136  DtGriddedDataInterface& operator = ( const DtGriddedDataInterface& other );
137 
138  protected:
139 
141  MAK::GriddedData::SubscriptionInfoPtr mySubscriptionInfoPtr;
142  typedef std::map<MAK::GriddedData::ProxyPtr,DtReflectedObject*> ProxyToRefObjMap;
143  ProxyToRefObjMap myRefGriddedDataMap;
144  ProxyToRefObjMap myGriddedDataWaitList;
145  TENA::GeocentricSpatialReferenceFrame::Pointer myGeocSrf;
146 
147  };
148 
149  }
150 }
151 
152 #endif // DtTENA
Contains the DtGriddedDataPdu 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)