19 #include <vlutil/vlMachineTypes.h>
20 #include <vl/vrlRtiAmbassador13.h>
26 namespace MAKTrafficClientServerExConn
28 class DtServerExerciseConnection;
29 class DtClientExerciseConnection;
30 class DtServerRtiAmbassador;
32 class DT_DLL_CSEC DtClientRtiAmbassador :
public DtVrlRtiAmbassador
38 DtClientRtiAmbassador();
41 virtual ~DtClientRtiAmbassador();
46 DtClientRtiAmbassador(
const DtClientRtiAmbassador& orig);
49 DtClientRtiAmbassador& operator=(
const DtClientRtiAmbassador& orig);
54 virtual void setClientExerciseConnection(DtClientExerciseConnection* exConn);
57 virtual DtClientExerciseConnection* clientExerciseConnection();
60 virtual DtServerExerciseConnection* serverExerciseConnection();
63 virtual RTI::RTIambassador* rtiAmb();
66 virtual DtServerRtiAmbassador* serverRtiAmb();
70 virtual void setSelfReflect(
bool enableSelfReflect);
73 virtual bool selfReflectEnabled()
const;
76 virtual void rejoin();
79 virtual void readyToResign();
82 virtual void createFederationExecution (
83 const char *executionName,
87 virtual void destroyFederationExecution (
88 const char *executionName);
91 virtual RTI::FederateHandle joinFederationExecution (
93 const char* executionName,
94 RTI::FederateAmbassador* federateAmbassadorReference);
97 virtual void resignFederationExecution(
98 RTI::ResignAction theAction);
101 virtual void registerFederationSynchronizationPoint(
106 virtual void registerFederationSynchronizationPoint(
109 const RTI::FederateHandleSet& syncSet);
112 virtual void synchronizationPointAchieved(
116 virtual void requestFederationSave (
118 const RTI::FedTime& theTime);
121 virtual void requestFederationSave (
125 virtual void federateSaveBegun();
128 virtual void federateSaveComplete();
131 virtual void federateSaveNotComplete();
134 virtual void requestFederationRestore(
const char* label);
137 virtual void federateRestoreComplete();
140 virtual void federateRestoreNotComplete();
143 virtual void publishObjectClass(
144 RTI::ObjectClassHandle theClass,
145 const RTI::AttributeHandleSet& attributeList);
148 virtual void unpublishObjectClass(
149 RTI::ObjectClassHandle theClass);
152 virtual void publishInteractionClass(
153 RTI::InteractionClassHandle theInteraction);
156 virtual void unpublishInteractionClass(
157 RTI::InteractionClassHandle theInteraction);
160 virtual void subscribeObjectClassAttributes(
161 RTI::ObjectClassHandle theClass,
162 const RTI::AttributeHandleSet& attributeList,
163 RTI::Boolean active = RTI::RTI_TRUE);
166 virtual void unsubscribeObjectClass(
167 RTI::ObjectClassHandle theClass);
170 virtual void subscribeInteractionClass(
171 RTI::InteractionClassHandle theClass,
172 RTI::Boolean active = RTI::RTI_TRUE);
175 virtual void unsubscribeInteractionClass(
176 RTI::InteractionClassHandle theClass);
179 virtual RTI::ObjectHandle registerObjectInstance(
180 RTI::ObjectClassHandle theClass,
const char* theObject);
183 virtual RTI::ObjectHandle registerObjectInstance(
184 RTI::ObjectClassHandle theClass);
187 virtual RTI::EventRetractionHandle updateAttributeValues(
188 RTI::ObjectHandle theObject,
189 const RTI::AttributeHandleValuePairSet& theAttributes,
190 const RTI::FedTime& theTime,
194 virtual void updateAttributeValues(
195 RTI::ObjectHandle theObject,
196 const RTI::AttributeHandleValuePairSet& theAttributes,
200 virtual RTI::EventRetractionHandle sendInteraction(
201 RTI::InteractionClassHandle theInteraction,
202 const RTI::ParameterHandleValuePairSet& theParameters,
203 const RTI::FedTime& theTime,
207 virtual void sendInteraction(
208 RTI::InteractionClassHandle theInteraction,
209 const RTI::ParameterHandleValuePairSet& theParameters,
213 virtual RTI::EventRetractionHandle deleteObjectInstance(
214 RTI::ObjectHandle theObject,
215 const RTI::FedTime& theTime,
219 virtual void deleteObjectInstance(
220 RTI::ObjectHandle theObject,
224 virtual void localDeleteObjectInstance(
225 RTI::ObjectHandle theObject);
228 virtual void changeAttributeTransportationType (
229 RTI::ObjectHandle theObject,
230 const RTI::AttributeHandleSet& theAttributes,
231 RTI::TransportationHandle theType);
234 virtual void changeInteractionTransportationType (
235 RTI::InteractionClassHandle theClass,
236 RTI::TransportationHandle theType);
239 virtual void requestObjectAttributeValueUpdate (
240 RTI::ObjectHandle theObject,
241 const RTI::AttributeHandleSet& theAttributes);
244 virtual void requestClassAttributeValueUpdate (
245 RTI::ObjectClassHandle theClass,
246 const RTI::AttributeHandleSet& theAttributes);
249 virtual void unconditionalAttributeOwnershipDivestiture(
250 RTI::ObjectHandle theObject,
251 const RTI::AttributeHandleSet& theAttributes);
254 virtual void negotiatedAttributeOwnershipDivestiture(
255 RTI::ObjectHandle theObject,
256 const RTI::AttributeHandleSet& theAttributes,
260 virtual void attributeOwnershipAcquisition(
261 RTI::ObjectHandle theObject,
262 const RTI::AttributeHandleSet& desiredAttributes,
266 virtual void attributeOwnershipAcquisitionIfAvailable(
267 RTI::ObjectHandle theObject,
268 const RTI::AttributeHandleSet& desiredAttributes);
271 virtual RTI::AttributeHandleSet* attributeOwnershipReleaseResponse(
272 RTI::ObjectHandle theObject,
273 const RTI::AttributeHandleSet& theAttributes);
276 virtual void cancelNegotiatedAttributeOwnershipDivestiture(
277 RTI::ObjectHandle theObject,
278 const RTI::AttributeHandleSet& theAttributes);
281 virtual void cancelAttributeOwnershipAcquisition(
282 RTI::ObjectHandle theObject,
283 const RTI::AttributeHandleSet& theAttributes);
286 virtual void queryAttributeOwnership(
287 RTI::ObjectHandle theObject,
288 RTI::AttributeHandle theAttribute);
291 virtual RTI::Boolean isAttributeOwnedByFederate(
292 RTI::ObjectHandle theObject,
293 RTI::AttributeHandle theAttribute);
296 virtual void enableTimeRegulation (
297 const RTI::FedTime& theFederateTime,
298 const RTI::FedTime& theLookahead);
301 virtual void disableTimeRegulation();
304 virtual void enableTimeConstrained();
307 virtual void disableTimeConstrained();
310 virtual void timeAdvanceRequest(
311 const RTI::FedTime& theTime);
314 virtual void timeAdvanceRequestAvailable (
315 const RTI::FedTime& theTime);
318 virtual void nextEventRequest(
319 const RTI::FedTime& theTime);
322 virtual void nextEventRequestAvailable (
323 const RTI::FedTime& theTime);
326 virtual void flushQueueRequest (
327 const RTI::FedTime& theTime);
330 virtual void enableAsynchronousDelivery();
333 virtual void disableAsynchronousDelivery();
336 virtual void queryLBTS(RTI::FedTime& theTime);
339 virtual void queryFederateTime(RTI::FedTime& theTime);
342 virtual void queryMinNextEventTime (
343 RTI::FedTime& theTime);
346 virtual void modifyLookahead (
347 const RTI::FedTime& theLookahead);
350 virtual void queryLookahead (
351 RTI::FedTime& theTime);
354 virtual void retract(
355 RTI::EventRetractionHandle theHandle);
358 virtual void changeAttributeOrderType(
359 RTI::ObjectHandle theObject,
360 const RTI::AttributeHandleSet& theAttributes,
361 RTI::OrderingHandle theType);
364 virtual void changeInteractionOrderType(
365 RTI::InteractionClassHandle theClass,
366 RTI::OrderingHandle theType);
369 virtual RTI::Region* createRegion (
370 RTI::SpaceHandle theSpace,
371 RTI::ULong numberOfExtents);
374 virtual void notifyAboutRegionModification (
375 RTI::Region &theRegion);
378 virtual void deleteRegion(RTI::Region *theRegion);
381 virtual RTI::ObjectHandle registerObjectInstanceWithRegion(
382 RTI::ObjectClassHandle theClass,
383 const char* theObject,
384 RTI::AttributeHandle theAttributes[],
385 RTI::Region* theRegions[],
386 RTI::ULong theNumberOfHandles);
389 virtual RTI::ObjectHandle registerObjectInstanceWithRegion(
390 RTI::ObjectClassHandle theClass,
391 RTI::AttributeHandle theAttributes[],
392 RTI::Region* theRegions[],
393 RTI::ULong theNumberOfHandles);
396 virtual void associateRegionForUpdates (
397 RTI::Region& theRegion,
398 RTI::ObjectHandle theObject,
399 const RTI::AttributeHandleSet& theAttributes);
402 virtual void unassociateRegionForUpdates(
403 RTI::Region& theRegion,
404 RTI::ObjectHandle theObject);
407 virtual void subscribeObjectClassAttributesWithRegion(
408 RTI::ObjectClassHandle theClass,
409 RTI::Region& theRegion,
410 const RTI::AttributeHandleSet &attributeList,
411 RTI::Boolean active = RTI::RTI_TRUE);
414 virtual void unsubscribeObjectClassWithRegion(
415 RTI::ObjectClassHandle theClass,
416 RTI::Region& theRegion);
419 virtual void subscribeInteractionClassWithRegion (
420 RTI::InteractionClassHandle theClass,
421 RTI::Region& theRegion,
422 RTI::Boolean active = RTI::RTI_TRUE);
425 virtual void unsubscribeInteractionClassWithRegion (
426 RTI::InteractionClassHandle theClass,
427 RTI::Region& theRegion);
430 virtual RTI::EventRetractionHandle sendInteractionWithRegion(
431 RTI::InteractionClassHandle theInteraction,
432 const RTI::ParameterHandleValuePairSet &theParameters,
433 const RTI::FedTime& theTime,
435 const RTI::Region& theRegion);
438 virtual void sendInteractionWithRegion(
439 RTI::InteractionClassHandle theInteraction,
440 const RTI::ParameterHandleValuePairSet &theParameters,
442 const RTI::Region& theRegion);
445 virtual void requestClassAttributeValueUpdateWithRegion(
446 RTI::ObjectClassHandle theClass,
447 const RTI::AttributeHandleSet& theAttributes,
448 const RTI::Region& theRegion);
451 virtual RTI::ObjectClassHandle getObjectClassHandle (
452 const char* theName);
455 virtual char* getObjectClassName (
456 RTI::ObjectClassHandle theHandle);
459 virtual RTI::AttributeHandle getAttributeHandle (
461 RTI::ObjectClassHandle whichClass);
464 virtual char* getAttributeName (
465 RTI::AttributeHandle theHandle,
466 RTI::ObjectClassHandle whichClass);
469 virtual RTI::InteractionClassHandle getInteractionClassHandle (
470 const char* theName);
473 virtual char* getInteractionClassName (
474 RTI::InteractionClassHandle theHandle);
477 virtual RTI::ParameterHandle getParameterHandle (
479 RTI::InteractionClassHandle whichClass);
482 virtual char* getParameterName (
483 RTI::ParameterHandle theHandle,
484 RTI::InteractionClassHandle whichClass);
487 virtual RTI::ObjectHandle getObjectInstanceHandle(
488 const char* theName);
491 virtual char* getObjectInstanceName(
492 RTI::ObjectHandle theHandle);
495 virtual RTI::SpaceHandle getRoutingSpaceHandle (
496 const char* theName);
499 virtual const char* getRoutingSpaceName (
500 const RTI::SpaceHandle theHandle);
503 virtual RTI::DimensionHandle getDimensionHandle(
505 RTI::SpaceHandle whichSpace);
508 virtual char* getDimensionName(
509 RTI::DimensionHandle theHandle,
510 RTI::SpaceHandle whichSpace);
513 virtual RTI::SpaceHandle
514 getAttributeRoutingSpaceHandle(
515 RTI::AttributeHandle theHandle,
516 RTI::ObjectClassHandle whichClass);
519 virtual RTI::ObjectClassHandle getObjectClass (
520 RTI::ObjectHandle theObject);
523 virtual RTI::SpaceHandle getInteractionRoutingSpaceHandle(
524 RTI::InteractionClassHandle theHandle);
527 virtual RTI::TransportationHandle getTransportationHandle(
528 const char *theName);
531 virtual char* getTransportationName(
532 RTI::TransportationHandle theHandle);
535 virtual RTI::OrderingHandle getOrderingHandle(
536 const char *theName);
539 virtual char* getOrderingName(
540 RTI::OrderingHandle theHandle);
543 virtual void enableClassRelevanceAdvisorySwitch();
546 virtual void disableClassRelevanceAdvisorySwitch();
549 virtual void enableAttributeRelevanceAdvisorySwitch();
552 virtual void disableAttributeRelevanceAdvisorySwitch();
555 virtual void enableAttributeScopeAdvisorySwitch();
558 virtual void disableAttributeScopeAdvisorySwitch();
561 virtual void enableInteractionRelevanceAdvisorySwitch();
564 virtual void disableInteractionRelevanceAdvisorySwitch();
567 virtual RTI::Boolean tick();
570 virtual RTI::Boolean tick(
571 RTI::TickTime minimum,
572 RTI::TickTime maximum);
575 virtual RTI::RegionToken getRegionToken(RTI::Region*);
578 virtual RTI::Region* getRegion(RTI::RegionToken);
583 static DtVrlRtiAmbassador* create(
const std::vector<std::wstring>&);
588 DtServerExerciseConnection* myServerExerciseConnection;
591 DtClientExerciseConnection* myClientExerciseConnection;
594 DtServerRtiAmbassador* myServerRtiAmbassador;
597 RTI::FederateAmbassador* myFedAmb;
600 bool mySelfReflectEnabled;
603 bool myReadyToResign;
609 class DT_DLL_CSEC DtPassiveClientRtiAmbassador :
public DtClientRtiAmbassador
614 DtPassiveClientRtiAmbassador(
const DtPassiveClientRtiAmbassador& orig);
617 DtPassiveClientRtiAmbassador& operator=(
const DtPassiveClientRtiAmbassador& orig);
622 DtPassiveClientRtiAmbassador() : DtClientRtiAmbassador()
626 virtual ~DtPassiveClientRtiAmbassador()
630 virtual void subscribeObjectClassAttributes(
631 RTI::ObjectClassHandle theClass,
632 const RTI::AttributeHandleSet& attributeList,
633 RTI::Boolean active = RTI::RTI_TRUE)
637 virtual void unsubscribeObjectClass(
638 RTI::ObjectClassHandle theClass)
642 virtual void subscribeInteractionClass(
643 RTI::InteractionClassHandle theClass,
644 RTI::Boolean active = RTI::RTI_TRUE)
648 virtual void unsubscribeInteractionClass(
649 RTI::InteractionClassHandle theClass)
653 virtual void subscribeObjectClassAttributesWithRegion(
654 RTI::ObjectClassHandle theClass,
655 RTI::Region& theRegion,
656 const RTI::AttributeHandleSet &attributeList,
657 RTI::Boolean active = RTI::RTI_TRUE)
661 virtual void unsubscribeObjectClassWithRegion(
662 RTI::ObjectClassHandle theClass,
663 RTI::Region& theRegion)
667 virtual void subscribeInteractionClassWithRegion (
668 RTI::InteractionClassHandle theClass,
669 RTI::Region& theRegion,
670 RTI::Boolean active = RTI::RTI_TRUE)
674 virtual void unsubscribeInteractionClassWithRegion (
675 RTI::InteractionClassHandle theClass,
676 RTI::Region& theRegion)
680 virtual void localDeleteObjectInstance(
681 RTI::ObjectHandle theObject)
687 static DtVrlRtiAmbassador* create(
const std::vector<std::wstring>&);