VR-Link API Documentation for HLA Evolved
interClassDesc.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 1992-2010 VT MAK
3 ** All rights reserved.
4 *********************************************************************/
7 
8 #ifndef DtInterClassDesc_H_
9 #define DtInterClassDesc_H_
10 
11 #if DtHLA
12 
13 #include <vlutil/vlMachineTypes.h>
14 #include "rtiNamespace.h"
15 #include "region.h"
16 #include <vlutil/vlString.h>
17 #include "userTagModifiers.h"
18 #include <set>
19 
20 class DtExerciseConn;
21 class DtVrlRtiAmbassador;
22 
23 
28 {
29 public:
30 
32  DtInterClassDesc(const char* className,
33  DtInterClassDesc* base, RTI::InteractionClassHandle handle,
34  DtExerciseConn* exConn);
35 
37  virtual ~DtInterClassDesc();
38 
40  virtual void addParam(const char* paramName);
41 
43  virtual RTI::InteractionClassHandle handle() const;
44 
46  virtual const char* name() const;
47 
49  virtual const DtInterClassDesc* baseClass() const;
50 
52  virtual DtInterClassDesc* baseClass();
53 
56  virtual int isOfClass(RTI::InteractionClassHandle hand) const;
57 
59  virtual int numParameters() const;
60 
62  virtual RTI::ParameterHandle parameterHandleByName(const char *paramName);
63 
65  virtual DtString parameterNameByHandle(const RTI::ParameterHandle& hand);
66 
67 #if !DtHLA_1516
68 
69  virtual int minParamHandle() const;
70  virtual int maxParamHandle() const;
71 #endif
72 
75 #if DtHLA_1516
76  virtual const RTI::ParameterHandleSet& paramHandleSet() const;
77 #else
78  virtual const RTI::AttributeHandleSet& paramHandleSet() const;
79 #endif
80 
82 #if DtHLA_1516
83  virtual const RTI::ParameterHandleSet& ownParamHandles() const;
84 #else
85  virtual const RTI::AttributeHandleSet& ownParamHandles() const;
86 #endif
87 
89  virtual void publish();
90 
92  virtual void unpublish();
93 
95  virtual void subscribe();
96 
98  virtual void subscribe(DtDDMRegionSP region);
99 
101  virtual void passiveSubscribe();
102 
104  virtual void unsubscribe();
105 
107  virtual void unsubscribe(DtDDMRegionSP region);
108 
110  virtual bool published() const;
111 
113  virtual bool subscribed() const;
114 
117  virtual DtInterClassDesc* firstSubscribed();
118 
120  virtual DtVrlRtiAmbassador* rtiAmb();
121 
124  virtual bool neededByFederation() const;
125 
128  virtual bool everPublished() const;
129 
132  virtual bool everSubscribed() const;
133 
134  virtual void setUserTagModifier(DtInteractionTagModifierSP modifier);
135  virtual DtInteractionTagModifierSP userTagModifier();
136 
137 public:
138 
140  static void setMaxParameters(int num);
141  static int maxParameters();
142 
148  static void setSubscriptionTimeDelay(double delay);
149 
150 
151 protected:
152 
154  static void startIntersCb(RTI::InteractionClassHandle hand,
155  void* usr);
156 
158  static void stopIntersCb(RTI::InteractionClassHandle hand,
159  void* usr);
160 
162  virtual void processStartInters(RTI::InteractionClassHandle hand);
163 
165  virtual void processStopInters(RTI::InteractionClassHandle hand);
166 
167 protected:
168 
170  DtInterClassDesc(const DtInterClassDesc& orig);
171 
173  DtInterClassDesc& operator=(const DtInterClassDesc& orig);
174 
175 protected:
176 
178  RTI::InteractionClassHandle myHandle;
179 #if DtHLA_1516
180  RTI::ParameterHandleSet* myParams;
181  RTI::ParameterHandleSet* myOwnParams;
182 #else
183  RTI::AttributeHandleSet* myParams;
184  RTI::AttributeHandleSet* myOwnParams;
185 #endif
193  RTI::ParameterHandle myMinParamHand;
194  RTI::ParameterHandle myMaxParamHand;
197  std::set<DtDDMRegionSP> mySubscribedRegions;
198 
199 protected:
200 
201  static int theMaxParams;
203 };
204 
205 inline RTI::InteractionClassHandle DtInterClassDesc::handle() const
206 {
207  return myHandle;
208 }
209 
211 {
212  return (int)myParams->size();
213 }
214 #if DtHLA_1516
215 inline const RTI::ParameterHandleSet& DtInterClassDesc::paramHandleSet() const
216 #else
217 inline const RTI::AttributeHandleSet& DtInterClassDesc::paramHandleSet() const
218 #endif
219 {
220  return *myParams;
221 }
222 
223 #if DtHLA_1516
224 inline const RTI::ParameterHandleSet& DtInterClassDesc::ownParamHandles() const
225 #else
226 inline const RTI::AttributeHandleSet& DtInterClassDesc::ownParamHandles() const
227 #endif
228 {
229  return *myOwnParams;
230 }
231 
233 {
234  return theMaxParams;
235 }
236 
238 {
239  theMaxParams = num;
240 }
241 
242 inline const char* DtInterClassDesc::name() const
243 {
244  return myName.c_str();
245 }
246 
248 {
249  return myBase;
250 }
251 
253 {
254  return myBase;
255 }
256 
258 {
259  theSubscriptionTimeDelay = delay;
260 }
261 
262 
263 #endif
264 #endif
265 

Document ID: Generated on Wed Oct 23 22:25:48 EDT 2013 from SVN revision 132765
Copyright © 2005-2013 VT MÄK. All Rights Reserved (www.mak.com)