![]() |
VR-Link API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00009 00010 #if DtHLA 00011 #if !DtHLA_1516 00012 00013 #include <vlutil/vlMachineTypes.h> 00014 00015 #ifndef DtDirectRtiAmbassador_H_ 00016 #define DtDirectRtiAmbassador_H_ 00017 00018 #include "vrlRtiAmb13.h" 00019 #include <RTI.hh> 00020 #include <vector> 00021 00026 class DT_DLL_VL DtDirectRtiAmbassador : public DtVrlRtiAmbassador 00027 { 00028 public: 00029 00031 DtDirectRtiAmbassador(); 00032 00034 virtual ~DtDirectRtiAmbassador(); 00035 00036 private: 00037 00039 DtDirectRtiAmbassador(const DtDirectRtiAmbassador& orig); 00040 00042 DtDirectRtiAmbassador& operator=(const DtDirectRtiAmbassador& orig); 00043 00044 public: 00045 00046 00048 virtual RTI::RTIambassador* rtiAmb(); 00049 00051 virtual void createFederationExecution ( 00052 const char *executionName, 00053 const char *FED); 00054 00056 virtual void destroyFederationExecution ( 00057 const char *executionName); 00058 00060 virtual RTI::FederateHandle joinFederationExecution ( 00061 const char* yourName, 00062 const char* executionName, 00063 RTI::FederateAmbassadorPtr federateAmbassadorReference); 00064 00066 virtual void resignFederationExecution( 00067 RTI::ResignAction theAction); 00068 00070 virtual void registerFederationSynchronizationPoint( 00071 const char* label, 00072 const char* theTag); 00073 00075 virtual void registerFederationSynchronizationPoint( 00076 const char* label, 00077 const char* theTag, 00078 const RTI::FederateHandleSet& syncSet); 00079 00081 virtual void synchronizationPointAchieved( 00082 const char* label); 00083 00085 virtual void requestFederationSave ( 00086 const char* label, 00087 const RTI::FedTime& theTime); 00088 00090 virtual void requestFederationSave ( 00091 const char *label); 00092 00094 virtual void federateSaveBegun(); 00095 00097 virtual void federateSaveComplete(); 00098 00100 virtual void federateSaveNotComplete(); 00101 00103 virtual void requestFederationRestore(const char* label); 00104 00106 virtual void federateRestoreComplete(); 00107 00109 virtual void federateRestoreNotComplete(); 00110 00112 virtual void publishObjectClass( 00113 RTI::ObjectClassHandle theClass, 00114 const RTI::AttributeHandleSet& attributeList); 00115 00117 virtual void unpublishObjectClass( 00118 RTI::ObjectClassHandle theClass); 00119 00121 virtual void publishInteractionClass( 00122 RTI::InteractionClassHandle theInteraction); 00123 00125 virtual void unpublishInteractionClass( 00126 RTI::InteractionClassHandle theInteraction); 00127 00129 virtual void subscribeObjectClassAttributes( 00130 RTI::ObjectClassHandle theClass, 00131 const RTI::AttributeHandleSet& attributeList, 00132 RTI::Boolean active = RTI::RTI_TRUE); 00133 00135 virtual void unsubscribeObjectClass( 00136 RTI::ObjectClassHandle theClass); 00137 00139 virtual void subscribeInteractionClass( 00140 RTI::InteractionClassHandle theClass, 00141 RTI::Boolean active = RTI::RTI_TRUE); 00142 00144 virtual void unsubscribeInteractionClass( 00145 RTI::InteractionClassHandle theClass); 00146 00148 virtual RTI::ObjectHandle registerObjectInstance( 00149 RTI::ObjectClassHandle theClass, const char* theObject); 00150 00152 virtual RTI::ObjectHandle registerObjectInstance( 00153 RTI::ObjectClassHandle theClass); 00154 00156 virtual RTI::EventRetractionHandle updateAttributeValues( 00157 RTI::ObjectHandle theObject, 00158 const RTI::AttributeHandleValuePairSet& theAttributes, 00159 const RTI::FedTime& theTime, 00160 const char* theTag); 00161 00163 virtual void updateAttributeValues( 00164 RTI::ObjectHandle theObject, 00165 const RTI::AttributeHandleValuePairSet& theAttributes, 00166 const char* theTag); 00167 00169 virtual RTI::EventRetractionHandle sendInteraction( 00170 RTI::InteractionClassHandle theInteraction, 00171 const RTI::ParameterHandleValuePairSet& theParameters, 00172 const RTI::FedTime& theTime, 00173 const char* theTag); 00174 00176 virtual void sendInteraction( 00177 RTI::InteractionClassHandle theInteraction, 00178 const RTI::ParameterHandleValuePairSet& theParameters, 00179 const char* theTag); 00180 00182 virtual RTI::EventRetractionHandle deleteObjectInstance( 00183 RTI::ObjectHandle theObject, 00184 const RTI::FedTime& theTime, 00185 const char* theTag); 00186 00188 virtual void deleteObjectInstance( 00189 RTI::ObjectHandle theObject, 00190 const char* theTag); 00191 00193 virtual void localDeleteObjectInstance( 00194 RTI::ObjectHandle theObject); 00195 00197 virtual void changeAttributeTransportationType ( 00198 RTI::ObjectHandle theObject, 00199 const RTI::AttributeHandleSet& theAttributes, 00200 RTI::TransportationHandle theType); 00201 00203 virtual void changeInteractionTransportationType ( 00204 RTI::InteractionClassHandle theClass, 00205 RTI::TransportationHandle theType); 00206 00208 virtual void requestObjectAttributeValueUpdate ( 00209 RTI::ObjectHandle theObject, 00210 const RTI::AttributeHandleSet& theAttributes); 00211 00213 virtual void requestClassAttributeValueUpdate ( 00214 RTI::ObjectClassHandle theClass, 00215 const RTI::AttributeHandleSet& theAttributes); 00216 00218 virtual void unconditionalAttributeOwnershipDivestiture( 00219 RTI::ObjectHandle theObject, 00220 const RTI::AttributeHandleSet& theAttributes); 00221 00223 virtual void negotiatedAttributeOwnershipDivestiture( 00224 RTI::ObjectHandle theObject, 00225 const RTI::AttributeHandleSet& theAttributes, 00226 const char* theTag); 00227 00229 virtual void attributeOwnershipAcquisition( 00230 RTI::ObjectHandle theObject, 00231 const RTI::AttributeHandleSet& desiredAttributes, 00232 const char* theTag); 00233 00235 virtual void attributeOwnershipAcquisitionIfAvailable( 00236 RTI::ObjectHandle theObject, 00237 const RTI::AttributeHandleSet& desiredAttributes); 00238 00240 virtual RTI::AttributeHandleSet* attributeOwnershipReleaseResponse( 00241 RTI::ObjectHandle theObject, 00242 const RTI::AttributeHandleSet& theAttributes); 00243 00245 virtual void cancelNegotiatedAttributeOwnershipDivestiture( 00246 RTI::ObjectHandle theObject, 00247 const RTI::AttributeHandleSet& theAttributes); 00248 00250 virtual void cancelAttributeOwnershipAcquisition( 00251 RTI::ObjectHandle theObject, 00252 const RTI::AttributeHandleSet& theAttributes); 00253 00255 virtual void queryAttributeOwnership( 00256 RTI::ObjectHandle theObject, 00257 RTI::AttributeHandle theAttribute); 00258 00260 virtual RTI::Boolean isAttributeOwnedByFederate( 00261 RTI::ObjectHandle theObject, 00262 RTI::AttributeHandle theAttribute); 00263 00265 virtual void enableTimeRegulation ( 00266 const RTI::FedTime& theFederateTime, 00267 const RTI::FedTime& theLookahead); 00268 00270 virtual void disableTimeRegulation(); 00271 00273 virtual void enableTimeConstrained(); 00274 00276 virtual void disableTimeConstrained(); 00277 00279 virtual void timeAdvanceRequest( 00280 const RTI::FedTime& theTime); 00281 00283 virtual void timeAdvanceRequestAvailable ( 00284 const RTI::FedTime& theTime); 00285 00287 virtual void nextEventRequest( 00288 const RTI::FedTime& theTime); 00289 00291 virtual void nextEventRequestAvailable ( 00292 const RTI::FedTime& theTime); 00293 00295 virtual void flushQueueRequest ( 00296 const RTI::FedTime& theTime); 00297 00299 virtual void enableAsynchronousDelivery(); 00300 00302 virtual void disableAsynchronousDelivery(); 00303 00305 virtual void queryLBTS(RTI::FedTime& theTime); 00306 00308 virtual void queryFederateTime(RTI::FedTime& theTime); 00309 00311 virtual void queryMinNextEventTime ( 00312 RTI::FedTime& theTime); 00313 00315 virtual void modifyLookahead ( 00316 const RTI::FedTime& theLookahead); 00317 00319 virtual void queryLookahead ( 00320 RTI::FedTime& theTime); 00321 00323 virtual void retract( 00324 RTI::EventRetractionHandle theHandle); 00325 00327 virtual void changeAttributeOrderType( 00328 RTI::ObjectHandle theObject, 00329 const RTI::AttributeHandleSet& theAttributes, 00330 RTI::OrderingHandle theType); 00331 00333 virtual void changeInteractionOrderType( 00334 RTI::InteractionClassHandle theClass, 00335 RTI::OrderingHandle theType); 00336 00338 virtual RTI::Region* createRegion ( 00339 RTI::SpaceHandle theSpace, 00340 RTI::ULong numberOfExtents); 00341 00343 virtual void notifyAboutRegionModification ( 00344 RTI::Region &theRegion); 00345 00347 virtual void deleteRegion(RTI::Region *theRegion); 00348 00350 virtual RTI::ObjectHandle registerObjectInstanceWithRegion( 00351 RTI::ObjectClassHandle theClass, 00352 const char* theObject, 00353 RTI::AttributeHandle theAttributes[], 00354 RTI::Region* theRegions[], 00355 RTI::ULong theNumberOfHandles); 00356 00358 virtual RTI::ObjectHandle registerObjectInstanceWithRegion( 00359 RTI::ObjectClassHandle theClass, 00360 RTI::AttributeHandle theAttributes[], 00361 RTI::Region* theRegions[], 00362 RTI::ULong theNumberOfHandles); 00363 00365 virtual void associateRegionForUpdates ( 00366 RTI::Region& theRegion, 00367 RTI::ObjectHandle theObject, 00368 const RTI::AttributeHandleSet& theAttributes); 00369 00371 virtual void unassociateRegionForUpdates( 00372 RTI::Region& theRegion, 00373 RTI::ObjectHandle theObject); 00374 00376 virtual void subscribeObjectClassAttributesWithRegion( 00377 RTI::ObjectClassHandle theClass, 00378 RTI::Region& theRegion, 00379 const RTI::AttributeHandleSet &attributeList, 00380 RTI::Boolean active = RTI::RTI_TRUE); 00381 00383 virtual void unsubscribeObjectClassWithRegion( 00384 RTI::ObjectClassHandle theClass, 00385 RTI::Region& theRegion); 00386 00388 virtual void subscribeInteractionClassWithRegion ( 00389 RTI::InteractionClassHandle theClass, 00390 RTI::Region& theRegion, 00391 RTI::Boolean active = RTI::RTI_TRUE); 00392 00394 virtual void unsubscribeInteractionClassWithRegion ( 00395 RTI::InteractionClassHandle theClass, 00396 RTI::Region& theRegion); 00397 00399 virtual RTI::EventRetractionHandle sendInteractionWithRegion( 00400 RTI::InteractionClassHandle theInteraction, 00401 const RTI::ParameterHandleValuePairSet &theParameters, 00402 const RTI::FedTime& theTime, 00403 const char* theTag, 00404 const RTI::Region& theRegion); 00405 00407 virtual void sendInteractionWithRegion( 00408 RTI::InteractionClassHandle theInteraction, 00409 const RTI::ParameterHandleValuePairSet &theParameters, 00410 const char* theTag, 00411 const RTI::Region& theRegion); 00412 00414 virtual void requestClassAttributeValueUpdateWithRegion( 00415 RTI::ObjectClassHandle theClass, 00416 const RTI::AttributeHandleSet& theAttributes, 00417 const RTI::Region& theRegion); 00418 00420 virtual RTI::ObjectClassHandle getObjectClassHandle ( 00421 const char* theName); 00422 00424 virtual char* getObjectClassName ( 00425 RTI::ObjectClassHandle theHandle); 00426 00428 virtual RTI::AttributeHandle getAttributeHandle ( 00429 const char* theName, 00430 RTI::ObjectClassHandle whichClass); 00431 00433 virtual char* getAttributeName ( 00434 RTI::AttributeHandle theHandle, 00435 RTI::ObjectClassHandle whichClass); 00436 00438 virtual RTI::InteractionClassHandle getInteractionClassHandle ( 00439 const char* theName); 00440 00442 virtual char* getInteractionClassName ( 00443 RTI::InteractionClassHandle theHandle); 00444 00446 virtual RTI::ParameterHandle getParameterHandle ( 00447 const char* theName, 00448 RTI::InteractionClassHandle whichClass); 00449 00451 virtual char* getParameterName ( 00452 RTI::ParameterHandle theHandle, 00453 RTI::InteractionClassHandle whichClass); 00454 00456 virtual RTI::ObjectHandle getObjectInstanceHandle( 00457 const char* theName); 00458 00460 virtual char* getObjectInstanceName( 00461 RTI::ObjectHandle theHandle); 00462 00464 virtual RTI::SpaceHandle getRoutingSpaceHandle ( 00465 const char* theName); 00466 00468 virtual const char* getRoutingSpaceName ( 00469 const RTI::SpaceHandle theHandle); 00470 00472 virtual RTI::DimensionHandle getDimensionHandle( 00473 const char* theName, 00474 RTI::SpaceHandle whichSpace); 00475 00477 virtual char* getDimensionName( 00478 RTI::DimensionHandle theHandle, 00479 RTI::SpaceHandle whichSpace); 00480 00482 virtual RTI::SpaceHandle 00483 getAttributeRoutingSpaceHandle( 00484 RTI::AttributeHandle theHandle, 00485 RTI::ObjectClassHandle whichClass); 00486 00488 virtual RTI::ObjectClassHandle getObjectClass ( 00489 RTI::ObjectHandle theObject); 00490 00492 virtual RTI::SpaceHandle getInteractionRoutingSpaceHandle( 00493 RTI::InteractionClassHandle theHandle); 00494 00496 virtual RTI::TransportationHandle getTransportationHandle( 00497 const char *theName); 00498 00500 virtual char* getTransportationName( 00501 RTI::TransportationHandle theHandle); 00502 00504 virtual RTI::OrderingHandle getOrderingHandle( 00505 const char *theName); 00506 00508 virtual char* getOrderingName( 00509 RTI::OrderingHandle theHandle); 00510 00512 virtual void enableClassRelevanceAdvisorySwitch(); 00513 00515 virtual void disableClassRelevanceAdvisorySwitch(); 00516 00518 virtual void enableAttributeRelevanceAdvisorySwitch(); 00519 00521 virtual void disableAttributeRelevanceAdvisorySwitch(); 00522 00524 virtual void enableAttributeScopeAdvisorySwitch(); 00525 00527 virtual void disableAttributeScopeAdvisorySwitch(); 00528 00530 virtual void enableInteractionRelevanceAdvisorySwitch(); 00531 00533 virtual void disableInteractionRelevanceAdvisorySwitch(); 00534 00536 virtual RTI::Boolean tick(); 00537 00539 virtual RTI::Boolean tick( 00540 RTI::TickTime minimum, 00541 RTI::TickTime maximum); 00542 00544 virtual RTI::RegionToken getRegionToken(RTI::Region*); 00545 00547 virtual RTI::Region* getRegion(RTI::RegionToken); 00548 00549 public: 00550 00552 static DtVrlRtiAmbassador* create(const std::vector<std::wstring>& args); 00553 00554 protected: 00555 00556 RTI::RTIambassador* myRtiAmb; 00557 RTI::FederateAmbassadorPtr myFedAmb; 00558 }; 00559 00560 #endif 00561 #endif 00562 #endif 00563