MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
fedAmbCallback13.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2012 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #if DtHLA
10 #if !DtHLA_1516
11 
12 #pragma once
13 
15 #include "fedAmbCallback.h"
16 
17 #include <memory>
18 
19 namespace MAKTrafficClientServerExConn
20 {
21 
22  class DtTaCallbackMsg;
23 
25  enum DtTaFedAmbCallKind
26  {
30 
31  DtTaFedAmbCall_synchronizationPointRegistrationSucceeded,
32  DtTaFedAmbCall_synchronizationPointRegistrationFailed,
33  DtTaFedAmbCall_announceSynchronizationPoint,
34  DtTaFedAmbCall_federationSynchronized,
35  DtTaFedAmbCall_initiateFederateSave,
36  DtTaFedAmbCall_federationSaved,
37  DtTaFedAmbCall_federationNotSaved,
38  DtTaFedAmbCall_requestFederationRestoreSucceeded,
39  DtTaFedAmbCall_requestFederationRestoreFailed,
40  DtTaFedAmbCall_federationRestoreBegun,
41  DtTaFedAmbCall_initiateFederateRestore,
42  DtTaFedAmbCall_federationRestored,
43  DtTaFedAmbCall_federationNotRestored,
44 
48 
49  DtTaFedAmbCall_startRegistrationForObjectClass,
50  DtTaFedAmbCall_stopRegistrationForObjectClass,
51  DtTaFedAmbCall_turnInteractionsOn,
52  DtTaFedAmbCall_turnInteractionsOff,
53 
57 
58  DtTaFedAmbCall_discoverObjectInstance,
59  DtTaFedAmbCall_reflectAttributeValues,
60  DtTaFedAmbCall_reflectAttributeValuesT,
61  DtTaFedAmbCall_receiveInteraction,
62  DtTaFedAmbCall_receiveInteractionT,
63  DtTaFedAmbCall_removeObjectInstance,
64  DtTaFedAmbCall_removeObjectInstanceT,
65  DtTaFedAmbCall_attributesInScope,
66  DtTaFedAmbCall_attributesOutOfScope,
67  DtTaFedAmbCall_provideAttributeValueUpdate,
68  DtTaFedAmbCall_turnUpdatesOnForObjectInstance,
69  DtTaFedAmbCall_turnUpdatesOffForObjectInstance,
70 
74 
75  DtTaFedAmbCall_requestAttributeOwnershipAssumption,
76  DtTaFedAmbCall_attributeOwnershipDivestitureNotification,
77  DtTaFedAmbCall_attributeOwnershipAcquisitionNotification,
78  DtTaFedAmbCall_attributeOwnershipUnavailable,
79  DtTaFedAmbCall_requestAttributeOwnershipRelease,
80  DtTaFedAmbCall_confirmAttributeOwnershipAcquisitionCancellation,
81  DtTaFedAmbCall_informAttributeOwnership,
82  DtTaFedAmbCall_attributeIsNotOwned,
83  DtTaFedAmbCall_attributeOwnedByRTI,
84 
88 
89  DtTaFedAmbCall_timeRegulationEnabled,
90  DtTaFedAmbCall_timeConstrainedEnabled,
91  DtTaFedAmbCall_timeAdvanceGrant,
92  DtTaFedAmbCall_requestRetraction,
93 
95  DtTaFedAmbCall_invalid
96  };
97 
98  // Call takes fedTime
99  template<int callbackKindValue>
100  class DtTaCallbackWithTime : public DtTaCallback
101  {
102  public:
104  DtTaCallbackWithTime(
105  std::auto_ptr<RTI::FedTime> time);
107  virtual ~DtTaCallbackWithTime();
108  private:
110  DtTaCallbackWithTime(DtTaCallbackWithTime const& orig);
111  DtTaCallbackWithTime& operator = (DtTaCallbackWithTime const& orig);
112  public:
114  virtual void invokeCallback(RTI::FederateAmbassador* fedAmb) const;
115  protected:
116  std::auto_ptr<RTI::FedTime> myTime;
117  };
118 
119  // Call takes object handle, attribute set, and optional user tag
120  template<int callbackKindValue>
121  class DtTaCallbackWithObjectAttributesOptTag : public DtTaCallback
122  {
123  public:
125  DtTaCallbackWithObjectAttributesOptTag(
126  RTI::ObjectHandle theObject,
127  RTI::AttributeHandleSet const & theAttributes);
128  DtTaCallbackWithObjectAttributesOptTag(
129  RTI::ObjectHandle theObject,
130  RTI::AttributeHandleSet const & theAttributes,
131  const char * theUserTag);
132 
134  virtual ~DtTaCallbackWithObjectAttributesOptTag();
135  private:
137  DtTaCallbackWithObjectAttributesOptTag(DtTaCallbackWithObjectAttributesOptTag const& orig);
138  DtTaCallbackWithObjectAttributesOptTag& operator = (DtTaCallbackWithObjectAttributesOptTag const& orig);
139  public:
141  virtual void invokeCallback(RTI::FederateAmbassador* fedAmb) const;
142  protected:
143  RTI::ObjectHandle myObject;
144  std::auto_ptr<RTI::AttributeHandleSet> myAttributes;
145  DtString myTag;
146  };
147 
148  typedef DtTaCallbackWithString<DtTaFedAmbCall_synchronizationPointRegistrationSucceeded> DtTaCbSynchronizationPointRegistrationSucceeded;
149  typedef DtTaCallbackWithString<DtTaFedAmbCall_synchronizationPointRegistrationFailed> DtTaCbSynchronizationPointRegistrationFailed;
150  typedef DtTaCallbackWithTwoStrings<DtTaFedAmbCall_announceSynchronizationPoint> DtTaCbAnnounceSynchronizationPoint;
151  typedef DtTaCallbackWithString<DtTaFedAmbCall_federationSynchronized> DtTaCbFederationSynchronized;
152  typedef DtTaCallbackWithString<DtTaFedAmbCall_initiateFederateSave> DtTaCbInitiateFederateSave;
153  typedef DtTaCallbackVoid<DtTaFedAmbCall_federationSaved> DtTaCbFederationSaved;
154  typedef DtTaCallbackVoid<DtTaFedAmbCall_federationNotSaved> DtTaCbFederationNotSaved;
155  typedef DtTaCallbackWithString<DtTaFedAmbCall_requestFederationRestoreSucceeded> DtTaCbRequestFederationRestoreSucceeded;
156  typedef DtTaCallbackWithTwoStrings<DtTaFedAmbCall_requestFederationRestoreFailed> DtTaCbRequestFederationRestoreFailed;
157  typedef DtTaCallbackVoid<DtTaFedAmbCall_federationRestoreBegun> DtTaCbFederationRestoreBegun;
158 
159  class DtTaCbInitiateFederateRestore : public DtTaCallback
160  {
161  public:
163  DtTaCbInitiateFederateRestore(const char * label, RTI::FederateHandle handle);
164 
166  virtual ~DtTaCbInitiateFederateRestore();
167  private:
169  DtTaCbInitiateFederateRestore(DtTaCbInitiateFederateRestore const& orig);
170  DtTaCbInitiateFederateRestore& operator = (DtTaCbInitiateFederateRestore const& orig);
171  public:
173  virtual void invokeCallback(RTI::FederateAmbassador* fedAmb) const;
174  protected:
175  DtString myLabel;
176  RTI::FederateHandle myFederateHandle;
177  };
178 
179  typedef DtTaCallbackVoid<DtTaFedAmbCall_federationRestored> DtTaCbFederationRestored;
180  typedef DtTaCallbackVoid<DtTaFedAmbCall_federationNotRestored> DtTaCbFederationNotRestored;
181  typedef DtTaCallbackWithObjectClass<DtTaFedAmbCall_startRegistrationForObjectClass> DtTaCbStartRegistrationForObjectClass;
182  typedef DtTaCallbackWithObjectClass<DtTaFedAmbCall_stopRegistrationForObjectClass> DtTaCbStopRegistrationForObjectClass;
183  typedef DtTaCallbackWithInteractionClass<DtTaFedAmbCall_turnInteractionsOn> DtTaCbTurnInteractionsOn;
184  typedef DtTaCallbackWithInteractionClass<DtTaFedAmbCall_turnInteractionsOff> DtTaCbTurnInteractionsOff;
185 
186  class DtTaCbDiscoverObjectInstance: public DtTaCallback
187  {
188  public:
190  DtTaCbDiscoverObjectInstance(RTI::ObjectHandle theObject,
191  RTI::ObjectClassHandle theObjectClass,
192  const char * theObjectInstanceName);
194  virtual ~DtTaCbDiscoverObjectInstance();
195  private:
197  DtTaCbDiscoverObjectInstance(DtTaCbDiscoverObjectInstance const& orig);
198  DtTaCbDiscoverObjectInstance& operator = (DtTaCbDiscoverObjectInstance const& orig);
199  public:
201  virtual void invokeCallback(RTI::FederateAmbassador* fedAmb) const;
202  protected:
203  RTI::ObjectHandle myObjectHandle;
204  RTI::ObjectClassHandle myObjectClassHandle;
205  DtString myString;
206  };
207 
208  class DtTaCbReflectAttributeValues: public DtTaCallback
209  {
210  public:
212  DtTaCbReflectAttributeValues(
213  RTI::ObjectHandle theObject,
214  const RTI::AttributeHandleValuePairSet& theAttributes,
215  const char * theTag);
216 
217  DtTaCbReflectAttributeValues (
218  RTI::ObjectHandle theObject,
219  const RTI::AttributeHandleValuePairSet& theAttributes,
220  std::auto_ptr<RTI::FedTime> theTime,
221  const char * theTag,
222  RTI::EventRetractionHandle theHandle);
223 
225  virtual ~DtTaCbReflectAttributeValues();
226  private:
228  DtTaCbReflectAttributeValues(DtTaCbReflectAttributeValues const& orig);
229  DtTaCbReflectAttributeValues& operator = (DtTaCbReflectAttributeValues const& orig);
230  public:
232  virtual void invokeCallback(RTI::FederateAmbassador* fedAmb) const;
233 
234  protected:
235  RTI::ObjectHandle myObject;
236  std::auto_ptr<RTI::AttributeHandleValuePairSet> myAttributeValues;
237  DtString myTag;
238  std::auto_ptr<RTI::FedTime> myTime;
239  RTI::EventRetractionHandle myRetractHandle;
240  };
241 
242  class DtTaCbReceiveInteraction: public DtTaCallback
243  {
244  public:
246  DtTaCbReceiveInteraction(
247  RTI::InteractionClassHandle theInteraction,
248  const RTI::ParameterHandleValuePairSet& theParameters,
249  const char * theTag);
250 
251  DtTaCbReceiveInteraction(
252  RTI::InteractionClassHandle theInteraction,
253  const RTI::ParameterHandleValuePairSet& theParameters,
254  std::auto_ptr<RTI::FedTime> theTime,
255  const char * theTag,
256  RTI::EventRetractionHandle theHandle);
257 
259  virtual ~DtTaCbReceiveInteraction();
260  private:
262  DtTaCbReceiveInteraction(DtTaCbReceiveInteraction const& orig);
263  DtTaCbReceiveInteraction& operator = (DtTaCbReceiveInteraction const& orig);
264  public:
266  virtual void invokeCallback(RTI::FederateAmbassador* fedAmb) const;
267 
268  protected:
269  RTI::InteractionClassHandle myInteractionClass;
270  std::auto_ptr<RTI::ParameterHandleValuePairSet> myParameterValues;
271  DtString myTag;
272  std::auto_ptr<RTI::FedTime> myTime;
273  RTI::EventRetractionHandle myRetractHandle;
274  };
275 
276  class DtTaCbRemoveObjectInstance: public DtTaCallback
277  {
278  public:
280  DtTaCbRemoveObjectInstance(
281  RTI::ObjectHandle theObject,
282  const char * theTag);
283  DtTaCbRemoveObjectInstance(
284  RTI::ObjectHandle theObject,
285  std::auto_ptr<RTI::FedTime> theTime,
286  const char * theTag,
287  RTI::EventRetractionHandle theHandle);
288 
290  virtual ~DtTaCbRemoveObjectInstance();
291  private:
293  DtTaCbRemoveObjectInstance(DtTaCbRemoveObjectInstance const& orig);
294  DtTaCbRemoveObjectInstance& operator = (DtTaCbRemoveObjectInstance const& orig);
295  public:
297  virtual void invokeCallback(RTI::FederateAmbassador* fedAmb) const;
298  protected:
299  RTI::ObjectHandle myObjectHandle;
300  DtString myTag;
301  std::auto_ptr<RTI::FedTime> myTime;
302  RTI::EventRetractionHandle myRetractHandle;
303  };
304 
305  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_attributesInScope> DtTaCbAttributesInScope;
306  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_attributesOutOfScope> DtTaCbAttributesOutOfScope;
307  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_provideAttributeValueUpdate> DtTaCbProvideAttributeValueUpdate;
308  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_turnUpdatesOnForObjectInstance> DtTaCbTurnUpdatesOnForObjectInstance;
309  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_turnUpdatesOffForObjectInstance> DtTaCbTurnUpdatesOffForObjectInstance;
310 
311  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_requestAttributeOwnershipAssumption> DtTaCbRequestAttributeOwnershipAssumption;
312  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_attributeOwnershipDivestitureNotification> DtTaCbAttributeOwnershipDivestitureNotification;
313  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_attributeOwnershipAcquisitionNotification> DtTaCbAttributeOwnershipAcquisitionNotification;
314  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_attributeOwnershipUnavailable> DtTaCbAttributeOwnershipUnavailable;
315  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_requestAttributeOwnershipRelease> DtTaCbRequestAttributeOwnershipRelease;
316  typedef DtTaCallbackWithObjectAttributesOptTag<DtTaFedAmbCall_confirmAttributeOwnershipAcquisitionCancellation> DtTaCbConfirmAttributeOwnershipAcquisitionCancellation;
317  typedef DtTaCallbackWithObjectAttributeOptFederate <DtTaFedAmbCall_informAttributeOwnership> DtTaCbInformAttributeOwnership;
318  typedef DtTaCallbackWithObjectAttributeOptFederate <DtTaFedAmbCall_attributeIsNotOwned> DtTaCbAttributeIsNotOwned;
319  typedef DtTaCallbackWithObjectAttributeOptFederate <DtTaFedAmbCall_attributeOwnedByRTI> DtTaCbAttributeOwnedByRTI;
320 
321  typedef DtTaCallbackWithTime<DtTaFedAmbCall_timeRegulationEnabled> DtTaCbTimeRegulationEnabled;
322  typedef DtTaCallbackWithTime<DtTaFedAmbCall_timeConstrainedEnabled> DtTaCbTimeConstrainedEnabled;
323  typedef DtTaCallbackWithTime<DtTaFedAmbCall_timeAdvanceGrant> DtTaCbTimeAdvanceGrant;
324 
325  class DtTaCbRequestRetraction: public DtTaCallback
326  {
327  public:
329  DtTaCbRequestRetraction(RTI::EventRetractionHandle handle);
331  virtual ~DtTaCbRequestRetraction();
332  private:
334  DtTaCbRequestRetraction(DtTaCbRequestRetraction const& orig);
335  DtTaCbRequestRetraction& operator = (DtTaCbRequestRetraction const& orig);
336  public:
338  virtual void invokeCallback(RTI::FederateAmbassador* fedAmb) const;
339  protected:
340  RTI::EventRetractionHandle myRetractHandle;
341  };
342 
344  DT_DLL_CSEC const char * callbackKindToString(int kind);
345 
346  #define fedAmbCallback13_inl_
347  #include "fedAmbCallback13.inl"
348  #undef fedAmbCallback13_inl_
349 
350 }
351 
352 #endif
353 #endif
The DtTaCallback is a base class to store callback parameters.
#define DT_DLL_CSEC
Definition: clientServerExConnDllDefines.h:17

Document ID: Generated on Thu Jul 14 15:45:33 EDT 2022 from SVN revision 244827
Copyright © 2021 MAK Technologies. All Rights Reserved (www.mak.com)