VR-Link API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
interactionWithEncDec.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
5 
6 
7 #ifndef DtInteractionWithEncDec_H_
8 #define DtInteractionWithEncDec_H_
9 
10 #if DtHLA
11 
12 
13 #include "rtiNamespace.h"
14 #include "interactionHLA.h"
15 
19 
20 class DT_DLL_VL DtInteractionDecoder;
21 class DT_DLL_VL DtInteractionEncoder;
22 class DT_DLL_VL DtInteractionRep;
23 
24 class DT_DLL_VL DtGenericParameterInfo
25 {
26 public:
27 
28  DtGenericParameterInfo() {}
29  DtGenericParameterInfo(const DtGenericParameterInfo& other)
30  : handle(other.handle)
31  , buffer(other.buffer) {}
32 
33  ~DtGenericParameterInfo() {}
34 
35  RTI::ParameterHandle handle;
36  std::vector<char> buffer;
37 };
38 
43 
44 class DT_DLL_VL DtInteractionWithEncDec : public DtInteraction
45 {
46 public:
47 
49  DtInteractionWithEncDec();
50 
52  virtual ~DtInteractionWithEncDec();
53 
55  DtInteractionWithEncDec(const DtInteractionWithEncDec& orig);
56 
58  DtInteractionWithEncDec& operator=(const DtInteractionWithEncDec& orig);
59 
68  virtual void setExConn(DtExerciseConn* exConn,
69  DtInterClassDesc* classDesc = NULL);
70 
74 #if DtHLA_1516
75  virtual const RTI::ParameterHandleValueMap& phvm() const;
76 #else
77  virtual const RTI::ParameterHandleValuePairSet& phvps() const;
78 #endif
79 
81 #if DtHLA_1516
82  virtual void setFromPhvm(
83  const RTI::ParameterHandleValueMap& pvList);
84 #else
85  virtual void setFromPhvps(
86  const RTI::ParameterHandleValuePairSet& pvList);
87 #endif
88 
96  virtual void useThese(DtInteractionEncoder* enc,
97  DtInteractionDecoder* dec,
98  DtInteractionRep* data);
99 
101  virtual DtInteractionEncoder* encoder() const;
102 
104  virtual DtInteractionDecoder* decoder() const;
105 
106 #ifdef DtHLA
107  // The following functions are related to unknown parameter encoding and decoding.
108 
110  virtual void setParameterByHandle(const RTI::ParameterHandle& attrHdl, const char* attrValue, unsigned size);
111 
113  virtual const char* getParameterByHandle(const RTI::ParameterHandle& attrHdl, unsigned& size) const;
114 
116  virtual void setParameterByName(const DtString& name, const char* attrValue, unsigned size);
117 
119  virtual const char* getParameterByName(const DtString& name, unsigned& size) const;
120 
121 #endif
122 
123 
124 protected:
125 
129  virtual DtInteractionDecoder* createDecoder(
130  DtExerciseConn* exConn) const;
131 
135  virtual DtInteractionEncoder* createEncoder(
136  DtExerciseConn* exConn) const;
137 
139  virtual DtInteractionDecoder* decoderToUse(
140  DtExerciseConn* exConn) const;
141 
143  virtual DtInteractionEncoder* encoderToUse(
144  DtExerciseConn* exConn) const;
145 
146 protected:
147 
148  DtInteractionDecoder* myDecoder;
149  DtInteractionEncoder* myEncoder;
150  DtInteractionRep* myData;
151 
155  std::map<RTI::ParameterHandle, DtGenericParameterInfo*> myParametersByHandle;
156 private:
157 
160  mutable DtInteractionDecoder* myMutableCreatedDecoder;
161  mutable DtInteractionEncoder* myMutableCreatedEncoder;
162  mutable RTI::InteractionClassHandle myMutableEncoderClassHandle;
163  mutable RTI::InteractionClassHandle myMutableDecoderClassHandle;
164 
165 };
166 
167 inline DtInteractionEncoder* DtInteractionWithEncDec::encoder() const
168 {
169  return myEncoder;
170 }
171 
172 inline DtInteractionDecoder* DtInteractionWithEncDec::decoder() const
173 {
174  return myDecoder;
175 }
176 
177 #endif
178 #endif
179 
180 
181 
182 
183 

Document ID: Generated on Mon Feb 6 18:36:34 EST 2017 from SVN revision 173107
Copyright © 2005-2016 VT MÄK. All Rights Reserved (www.mak.com)