15 #ifndef DtDirectRtiAmbassador_H_
16 #define DtDirectRtiAmbassador_H_
26 class DT_DLL_VL DtDirectRtiAmbassador :
public DtVrlRtiAmbassador
31 DtDirectRtiAmbassador();
34 virtual ~DtDirectRtiAmbassador();
39 DtDirectRtiAmbassador(
const DtDirectRtiAmbassador& orig);
42 DtDirectRtiAmbassador& operator=(
const DtDirectRtiAmbassador& orig);
48 virtual RTI::RTIambassador* rtiAmb();
51 virtual void createFederationExecution (
52 const char *executionName,
56 virtual void destroyFederationExecution (
57 const char *executionName);
60 virtual RTI::FederateHandle joinFederationExecution (
62 const char* executionName,
63 RTI::FederateAmbassadorPtr federateAmbassadorReference);
66 virtual void resignFederationExecution(
67 RTI::ResignAction theAction);
70 virtual void registerFederationSynchronizationPoint(
75 virtual void registerFederationSynchronizationPoint(
78 const RTI::FederateHandleSet& syncSet);
81 virtual void synchronizationPointAchieved(
85 virtual void requestFederationSave (
87 const RTI::FedTime& theTime);
90 virtual void requestFederationSave (
94 virtual void federateSaveBegun();
97 virtual void federateSaveComplete();
100 virtual void federateSaveNotComplete();
103 virtual void requestFederationRestore(
const char* label);
106 virtual void federateRestoreComplete();
109 virtual void federateRestoreNotComplete();
112 virtual void publishObjectClass(
113 RTI::ObjectClassHandle theClass,
114 const RTI::AttributeHandleSet& attributeList);
117 virtual void unpublishObjectClass(
118 RTI::ObjectClassHandle theClass);
121 virtual void publishInteractionClass(
122 RTI::InteractionClassHandle theInteraction);
125 virtual void unpublishInteractionClass(
126 RTI::InteractionClassHandle theInteraction);
129 virtual void subscribeObjectClassAttributes(
130 RTI::ObjectClassHandle theClass,
131 const RTI::AttributeHandleSet& attributeList,
132 RTI::Boolean active = RTI::RTI_TRUE);
135 virtual void unsubscribeObjectClass(
136 RTI::ObjectClassHandle theClass);
139 virtual void subscribeInteractionClass(
140 RTI::InteractionClassHandle theClass,
141 RTI::Boolean active = RTI::RTI_TRUE);
144 virtual void unsubscribeInteractionClass(
145 RTI::InteractionClassHandle theClass);
148 virtual RTI::ObjectHandle registerObjectInstance(
149 RTI::ObjectClassHandle theClass,
const char* theObject);
152 virtual RTI::ObjectHandle registerObjectInstance(
153 RTI::ObjectClassHandle theClass);
156 virtual RTI::EventRetractionHandle updateAttributeValues(
157 RTI::ObjectHandle theObject,
158 const RTI::AttributeHandleValuePairSet& theAttributes,
159 const RTI::FedTime& theTime,
163 virtual void updateAttributeValues(
164 RTI::ObjectHandle theObject,
165 const RTI::AttributeHandleValuePairSet& theAttributes,
169 virtual RTI::EventRetractionHandle sendInteraction(
170 RTI::InteractionClassHandle theInteraction,
171 const RTI::ParameterHandleValuePairSet& theParameters,
172 const RTI::FedTime& theTime,
176 virtual void sendInteraction(
177 RTI::InteractionClassHandle theInteraction,
178 const RTI::ParameterHandleValuePairSet& theParameters,
182 virtual RTI::EventRetractionHandle deleteObjectInstance(
183 RTI::ObjectHandle theObject,
184 const RTI::FedTime& theTime,
188 virtual void deleteObjectInstance(
189 RTI::ObjectHandle theObject,
193 virtual void localDeleteObjectInstance(
194 RTI::ObjectHandle theObject);
197 virtual void changeAttributeTransportationType (
198 RTI::ObjectHandle theObject,
199 const RTI::AttributeHandleSet& theAttributes,
200 RTI::TransportationHandle theType);
203 virtual void changeInteractionTransportationType (
204 RTI::InteractionClassHandle theClass,
205 RTI::TransportationHandle theType);
208 virtual void requestObjectAttributeValueUpdate (
209 RTI::ObjectHandle theObject,
210 const RTI::AttributeHandleSet& theAttributes);
213 virtual void requestClassAttributeValueUpdate (
214 RTI::ObjectClassHandle theClass,
215 const RTI::AttributeHandleSet& theAttributes);
218 virtual void unconditionalAttributeOwnershipDivestiture(
219 RTI::ObjectHandle theObject,
220 const RTI::AttributeHandleSet& theAttributes);
223 virtual void negotiatedAttributeOwnershipDivestiture(
224 RTI::ObjectHandle theObject,
225 const RTI::AttributeHandleSet& theAttributes,
229 virtual void attributeOwnershipAcquisition(
230 RTI::ObjectHandle theObject,
231 const RTI::AttributeHandleSet& desiredAttributes,
235 virtual void attributeOwnershipAcquisitionIfAvailable(
236 RTI::ObjectHandle theObject,
237 const RTI::AttributeHandleSet& desiredAttributes);
240 virtual RTI::AttributeHandleSet* attributeOwnershipReleaseResponse(
241 RTI::ObjectHandle theObject,
242 const RTI::AttributeHandleSet& theAttributes);
245 virtual void cancelNegotiatedAttributeOwnershipDivestiture(
246 RTI::ObjectHandle theObject,
247 const RTI::AttributeHandleSet& theAttributes);
250 virtual void cancelAttributeOwnershipAcquisition(
251 RTI::ObjectHandle theObject,
252 const RTI::AttributeHandleSet& theAttributes);
255 virtual void queryAttributeOwnership(
256 RTI::ObjectHandle theObject,
257 RTI::AttributeHandle theAttribute);
260 virtual RTI::Boolean isAttributeOwnedByFederate(
261 RTI::ObjectHandle theObject,
262 RTI::AttributeHandle theAttribute);
265 virtual void enableTimeRegulation (
266 const RTI::FedTime& theFederateTime,
267 const RTI::FedTime& theLookahead);
270 virtual void disableTimeRegulation();
273 virtual void enableTimeConstrained();
276 virtual void disableTimeConstrained();
279 virtual void timeAdvanceRequest(
280 const RTI::FedTime& theTime);
283 virtual void timeAdvanceRequestAvailable (
284 const RTI::FedTime& theTime);
287 virtual void nextEventRequest(
288 const RTI::FedTime& theTime);
291 virtual void nextEventRequestAvailable (
292 const RTI::FedTime& theTime);
295 virtual void flushQueueRequest (
296 const RTI::FedTime& theTime);
299 virtual void enableAsynchronousDelivery();
302 virtual void disableAsynchronousDelivery();
305 virtual void queryLBTS(RTI::FedTime& theTime);
308 virtual void queryFederateTime(RTI::FedTime& theTime);
311 virtual void queryMinNextEventTime (
312 RTI::FedTime& theTime);
315 virtual void modifyLookahead (
316 const RTI::FedTime& theLookahead);
319 virtual void queryLookahead (
320 RTI::FedTime& theTime);
323 virtual void retract(
324 RTI::EventRetractionHandle theHandle);
327 virtual void changeAttributeOrderType(
328 RTI::ObjectHandle theObject,
329 const RTI::AttributeHandleSet& theAttributes,
330 RTI::OrderingHandle theType);
333 virtual void changeInteractionOrderType(
334 RTI::InteractionClassHandle theClass,
335 RTI::OrderingHandle theType);
338 virtual RTI::Region* createRegion (
339 RTI::SpaceHandle theSpace,
340 RTI::ULong numberOfExtents);
343 virtual void notifyAboutRegionModification (
344 RTI::Region &theRegion);
347 virtual void deleteRegion(RTI::Region *theRegion);
350 virtual RTI::ObjectHandle registerObjectInstanceWithRegion(
351 RTI::ObjectClassHandle theClass,
352 const char* theObject,
353 RTI::AttributeHandle theAttributes[],
354 RTI::Region* theRegions[],
355 RTI::ULong theNumberOfHandles);
358 virtual RTI::ObjectHandle registerObjectInstanceWithRegion(
359 RTI::ObjectClassHandle theClass,
360 RTI::AttributeHandle theAttributes[],
361 RTI::Region* theRegions[],
362 RTI::ULong theNumberOfHandles);
365 virtual void associateRegionForUpdates (
366 RTI::Region& theRegion,
367 RTI::ObjectHandle theObject,
368 const RTI::AttributeHandleSet& theAttributes);
371 virtual void unassociateRegionForUpdates(
372 RTI::Region& theRegion,
373 RTI::ObjectHandle theObject);
376 virtual void subscribeObjectClassAttributesWithRegion(
377 RTI::ObjectClassHandle theClass,
378 RTI::Region& theRegion,
379 const RTI::AttributeHandleSet &attributeList,
380 RTI::Boolean active = RTI::RTI_TRUE);
383 virtual void unsubscribeObjectClassWithRegion(
384 RTI::ObjectClassHandle theClass,
385 RTI::Region& theRegion);
388 virtual void subscribeInteractionClassWithRegion (
389 RTI::InteractionClassHandle theClass,
390 RTI::Region& theRegion,
391 RTI::Boolean active = RTI::RTI_TRUE);
394 virtual void unsubscribeInteractionClassWithRegion (
395 RTI::InteractionClassHandle theClass,
396 RTI::Region& theRegion);
399 virtual RTI::EventRetractionHandle sendInteractionWithRegion(
400 RTI::InteractionClassHandle theInteraction,
401 const RTI::ParameterHandleValuePairSet &theParameters,
402 const RTI::FedTime& theTime,
404 const RTI::Region& theRegion);
407 virtual void sendInteractionWithRegion(
408 RTI::InteractionClassHandle theInteraction,
409 const RTI::ParameterHandleValuePairSet &theParameters,
411 const RTI::Region& theRegion);
414 virtual void requestClassAttributeValueUpdateWithRegion(
415 RTI::ObjectClassHandle theClass,
416 const RTI::AttributeHandleSet& theAttributes,
417 const RTI::Region& theRegion);
420 virtual RTI::ObjectClassHandle getObjectClassHandle (
421 const char* theName);
424 virtual char* getObjectClassName (
425 RTI::ObjectClassHandle theHandle);
428 virtual RTI::AttributeHandle getAttributeHandle (
430 RTI::ObjectClassHandle whichClass);
433 virtual char* getAttributeName (
434 RTI::AttributeHandle theHandle,
435 RTI::ObjectClassHandle whichClass);
438 virtual RTI::InteractionClassHandle getInteractionClassHandle (
439 const char* theName);
442 virtual char* getInteractionClassName (
443 RTI::InteractionClassHandle theHandle);
446 virtual RTI::ParameterHandle getParameterHandle (
448 RTI::InteractionClassHandle whichClass);
451 virtual char* getParameterName (
452 RTI::ParameterHandle theHandle,
453 RTI::InteractionClassHandle whichClass);
456 virtual RTI::ObjectHandle getObjectInstanceHandle(
457 const char* theName);
460 virtual char* getObjectInstanceName(
461 RTI::ObjectHandle theHandle);
464 virtual RTI::SpaceHandle getRoutingSpaceHandle (
465 const char* theName);
468 virtual const char* getRoutingSpaceName (
469 const RTI::SpaceHandle theHandle);
472 virtual RTI::DimensionHandle getDimensionHandle(
474 RTI::SpaceHandle whichSpace);
477 virtual char* getDimensionName(
478 RTI::DimensionHandle theHandle,
479 RTI::SpaceHandle whichSpace);
482 virtual RTI::SpaceHandle
483 getAttributeRoutingSpaceHandle(
484 RTI::AttributeHandle theHandle,
485 RTI::ObjectClassHandle whichClass);
488 virtual RTI::ObjectClassHandle getObjectClass (
489 RTI::ObjectHandle theObject);
492 virtual RTI::SpaceHandle getInteractionRoutingSpaceHandle(
493 RTI::InteractionClassHandle theHandle);
496 virtual RTI::TransportationHandle getTransportationHandle(
497 const char *theName);
500 virtual char* getTransportationName(
501 RTI::TransportationHandle theHandle);
504 virtual RTI::OrderingHandle getOrderingHandle(
505 const char *theName);
508 virtual char* getOrderingName(
509 RTI::OrderingHandle theHandle);
512 virtual void enableClassRelevanceAdvisorySwitch();
515 virtual void disableClassRelevanceAdvisorySwitch();
518 virtual void enableAttributeRelevanceAdvisorySwitch();
521 virtual void disableAttributeRelevanceAdvisorySwitch();
524 virtual void enableAttributeScopeAdvisorySwitch();
527 virtual void disableAttributeScopeAdvisorySwitch();
530 virtual void enableInteractionRelevanceAdvisorySwitch();
533 virtual void disableInteractionRelevanceAdvisorySwitch();
536 virtual RTI::Boolean tick();
539 virtual RTI::Boolean tick(
540 RTI::TickTime minimum,
541 RTI::TickTime maximum);
544 virtual RTI::RegionToken getRegionToken(RTI::Region*);
547 virtual RTI::Region* getRegion(RTI::RegionToken);
552 static DtVrlRtiAmbassador* create(
const std::vector<std::wstring>& args);
556 RTI::RTIambassador* myRtiAmb;
557 RTI::FederateAmbassadorPtr myFedAmb;