WebLVC 1.7d API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
iffInterface.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2013 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #if DtTENA
11 
12 #pragma once
13 
14 #include <vlTena/reflectedIff.h>
15 #include <vlTena/objectInterface.h>
16 
17 #include <JNTC/AirTransponder/ImmutablePublicationStatePtr.h>
18 #include <JNTC/AirTransponder/SubscriptionInfoPtr.h>
19 #include <JNTC/AirTransponder/ServantPtr.h>
20 #include <JNTC/AirTransponder/ProxyPtr.h>
21 
23 
24 #include <vl/globalObjectDesignator.h>
25 #include <vl/iffStateRepository.h>
26 
27 #include <vlutil/vlMachineTypes.h>
28 
29 #include <vlpi/entityType.h>
30 
31 #include <list>
32 #include <map>
33 
34 namespace MAKVrExchange
35 {
36 
37  namespace DtTenaBroker
38  {
39 
47  class DT_DLL_MAKLROM DtIffInterface: public DtObjectInterface
48  {
49  protected:
50 
53  class DtIffServantObject : public DtTenaServantObject
54  {
55  public:
56 
58  DtIffServantObject( JNTC::AirTransponder::ServantPtr sp):myServantPtr(sp){}
59 
61  virtual ~DtIffServantObject() {}
62 
64  virtual const JNTC::AirTransponder::ServantPtr servant() const { return myServantPtr;}
65 
67  virtual JNTC::AirTransponder::ServantPtr servant() { return myServantPtr;}
68 
69  protected:
70 
71  JNTC::AirTransponder::ServantPtr myServantPtr;
72 
73  };
74 
75  public:
76 
78  DtIffInterface(DtExerciseConn* exConn);
79 
81  virtual ~DtIffInterface();
82 
85  virtual DtTenaServantObject* createServantObject(DtExerciseConn* exConn);
86 
88  virtual void processServantCleanup(DtTenaServantObject* servantObject);
89 
91  virtual void subscribe();
92 
94  virtual bool needUpdate(const DtStateRepository& stateRep,
95  const DtStateRepository& asSeenByRemote,
96  bool useThresholding = true);
97 
99  virtual void decode(const DtTenaServantObject* servant,
100  DtStateRepository* stateRep)const;
101 
103  virtual void encode(DtTenaServantObject* servant,
104  const DtStateRepository* stateRep,
105  TENA::Time::Pointer timeForStamping,
106  bool forceUpdate = false);
107 
109  virtual DtReflectedObject *createReflectedObject()const;
110 
112  virtual void processAddition(JNTC::AirTransponder::ProxyPtr const &proxy);
113 
115  virtual void processUpdate(JNTC::AirTransponder::ProxyPtr const &proxy);
116 
118  virtual void processRemoval(JNTC::AirTransponder::ProxyPtr const &proxy);
119 
120  protected:
121 
123  virtual void decode( const JNTC::AirTransponder::ImmutablePublicationStatePtr pubStatePtr,
124  DtStateRepository* stateRep ) const;
125 
126  private:
127 
129  DtIffInterface( const DtIffInterface& other );
130 
132  DtIffInterface& operator = ( const DtIffInterface& other );
133 
134  protected:
135 
137  JNTC::AirTransponder::SubscriptionInfoPtr mySubscriptionInfoPtr;
138  typedef std::map<JNTC::AirTransponder::ProxyPtr,DtReflectedObject*> ProxyToRefObjMap;
139  ProxyToRefObjMap myRefIffMap;
140  ProxyToRefObjMap myIffWaitList;
141 
142  };
143 
144  }
145 }
146 
147 #endif // DtTENA
Contains the DtTenaServantObject and DtObjectInterface class declarations.
Contains the DtReflectedIff class declaration.
#define DT_DLL_MAKLROM
Definition: makLromMapExport.h:26

Document ID: Generated on Wed Jun 21 15:05:44 EDT 2023 from SVN revision 256253
Copyright © 2005-2023 MAK Technologies. All Rights Reserved (www.mak.com)