![]() |
VR-Link API Documentation for DIS
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00009 00010 #if DtHLA 00011 #if !DtHLA_1516 00012 00013 #ifndef DtVrlRtiAmbassador_H_ 00014 #define DtVrlRtiAmbassador_H_ 00015 00016 00017 #include <RTI.hh> 00018 00019 #include <vlutil/vlMachineTypes.h> 00020 00024 class DT_DLL_VL DtVrlRtiAmbassador 00025 { 00026 public: 00027 00029 DtVrlRtiAmbassador(); 00030 00032 virtual ~DtVrlRtiAmbassador(); 00033 00034 private: 00036 DtVrlRtiAmbassador(const DtVrlRtiAmbassador& orig); 00037 00039 DtVrlRtiAmbassador& operator=(const DtVrlRtiAmbassador& orig); 00040 00041 public: 00042 00045 virtual RTI::RTIambassador* rtiAmb(); 00046 00047 virtual void createFederationExecution ( 00048 const char *executionName, 00049 const char *FED) = 0; 00050 00051 virtual void destroyFederationExecution ( 00052 const char *executionName) = 0; 00053 00054 virtual RTI::FederateHandle joinFederationExecution ( 00055 const char* yourName, 00056 const char* executionName, 00057 RTI::FederateAmbassadorPtr federateAmbassadorReference) = 0; 00058 00059 virtual void resignFederationExecution( 00060 RTI::ResignAction theAction) = 0; 00061 00062 virtual void registerFederationSynchronizationPoint( 00063 const char* label, 00064 const char* theTag) = 0; 00065 00066 virtual void registerFederationSynchronizationPoint( 00067 const char* label, 00068 const char* theTag, 00069 const RTI::FederateHandleSet& syncSet) = 0; 00070 00071 virtual void synchronizationPointAchieved( 00072 const char* label) = 0; 00073 00074 virtual void requestFederationSave ( 00075 const char* label, 00076 const RTI::FedTime& theTime) = 0; 00077 00078 virtual void requestFederationSave ( 00079 const char *label) = 0; 00080 00081 virtual void federateSaveBegun() = 0; 00082 00083 virtual void federateSaveComplete() = 0; 00084 00085 virtual void federateSaveNotComplete() = 0; 00086 00087 virtual void requestFederationRestore(const char* label) = 0; 00088 00089 virtual void federateRestoreComplete() = 0; 00090 00091 virtual void federateRestoreNotComplete() = 0; 00092 00093 virtual void publishObjectClass( 00094 RTI::ObjectClassHandle theClass, 00095 const RTI::AttributeHandleSet& attributeList) = 0; 00096 00097 virtual void unpublishObjectClass( 00098 RTI::ObjectClassHandle theClass) = 0; 00099 00100 virtual void publishInteractionClass( 00101 RTI::InteractionClassHandle theInteraction) = 0; 00102 00103 virtual void unpublishInteractionClass( 00104 RTI::InteractionClassHandle theInteraction) = 0; 00105 00106 virtual void subscribeObjectClassAttributes( 00107 RTI::ObjectClassHandle theClass, 00108 const RTI::AttributeHandleSet& attributeList, 00109 RTI::Boolean active = RTI::RTI_TRUE) = 0; 00110 00111 virtual void unsubscribeObjectClass( 00112 RTI::ObjectClassHandle theClass) = 0; 00113 00114 virtual void subscribeInteractionClass( 00115 RTI::InteractionClassHandle theClass, 00116 RTI::Boolean active = RTI::RTI_TRUE) = 0; 00117 00118 virtual void unsubscribeInteractionClass( 00119 RTI::InteractionClassHandle theClass) = 0; 00120 00121 virtual RTI::ObjectHandle registerObjectInstance( 00122 RTI::ObjectClassHandle theClass, const char* theObject) = 0; 00123 00124 virtual RTI::ObjectHandle registerObjectInstance( 00125 RTI::ObjectClassHandle theClass) = 0; 00126 00127 virtual RTI::EventRetractionHandle updateAttributeValues( 00128 RTI::ObjectHandle theObject, 00129 const RTI::AttributeHandleValuePairSet& theAttributes, 00130 const RTI::FedTime& theTime, 00131 const char* theTag) = 0; 00132 00133 virtual void updateAttributeValues( 00134 RTI::ObjectHandle theObject, 00135 const RTI::AttributeHandleValuePairSet& theAttributes, 00136 const char* theTag) = 0; 00137 00138 virtual RTI::EventRetractionHandle sendInteraction( 00139 RTI::InteractionClassHandle theInteraction, 00140 const RTI::ParameterHandleValuePairSet& theParameters, 00141 const RTI::FedTime& theTime, 00142 const char* theTag) = 0; 00143 00144 virtual void sendInteraction( 00145 RTI::InteractionClassHandle theInteraction, 00146 const RTI::ParameterHandleValuePairSet& theParameters, 00147 const char* theTag) = 0; 00148 00149 virtual RTI::EventRetractionHandle deleteObjectInstance( 00150 RTI::ObjectHandle theObject, 00151 const RTI::FedTime& theTime, 00152 const char* theTag) = 0; 00153 00154 virtual void deleteObjectInstance( 00155 RTI::ObjectHandle theObject, 00156 const char* theTag) = 0; 00157 00158 virtual void localDeleteObjectInstance( 00159 RTI::ObjectHandle theObject) = 0; 00160 00161 virtual void changeAttributeTransportationType ( 00162 RTI::ObjectHandle theObject, 00163 const RTI::AttributeHandleSet& theAttributes, 00164 RTI::TransportationHandle theType) = 0; 00165 00166 virtual void changeInteractionTransportationType ( 00167 RTI::InteractionClassHandle theClass, 00168 RTI::TransportationHandle theType) = 0; 00169 00170 virtual void requestObjectAttributeValueUpdate ( 00171 RTI::ObjectHandle theObject, 00172 const RTI::AttributeHandleSet& theAttributes) = 0; 00173 00174 virtual void requestClassAttributeValueUpdate ( 00175 RTI::ObjectClassHandle theClass, 00176 const RTI::AttributeHandleSet& theAttributes) = 0; 00177 00178 virtual void unconditionalAttributeOwnershipDivestiture( 00179 RTI::ObjectHandle theObject, 00180 const RTI::AttributeHandleSet& theAttributes) = 0; 00181 00182 virtual void negotiatedAttributeOwnershipDivestiture( 00183 RTI::ObjectHandle theObject, 00184 const RTI::AttributeHandleSet& theAttributes, 00185 const char* theTag) = 0; 00186 00187 virtual void attributeOwnershipAcquisition( 00188 RTI::ObjectHandle theObject, 00189 const RTI::AttributeHandleSet& desiredAttributes, 00190 const char* theTag) = 0; 00191 00192 virtual void attributeOwnershipAcquisitionIfAvailable( 00193 RTI::ObjectHandle theObject, 00194 const RTI::AttributeHandleSet& desiredAttributes) = 0; 00195 00196 virtual RTI::AttributeHandleSet* attributeOwnershipReleaseResponse( 00197 RTI::ObjectHandle theObject, 00198 const RTI::AttributeHandleSet& theAttributes) = 0; 00199 00200 virtual void cancelNegotiatedAttributeOwnershipDivestiture( 00201 RTI::ObjectHandle theObject, 00202 const RTI::AttributeHandleSet& theAttributes) = 0; 00203 00204 virtual void cancelAttributeOwnershipAcquisition( 00205 RTI::ObjectHandle theObject, 00206 const RTI::AttributeHandleSet& theAttributes) = 0; 00207 00208 virtual void queryAttributeOwnership( 00209 RTI::ObjectHandle theObject, 00210 RTI::AttributeHandle theAttribute) = 0; 00211 00212 virtual RTI::Boolean isAttributeOwnedByFederate( 00213 RTI::ObjectHandle theObject, 00214 RTI::AttributeHandle theAttribute) = 0; 00215 00216 virtual void enableTimeRegulation ( 00217 const RTI::FedTime& theFederateTime, 00218 const RTI::FedTime& theLookahead) = 0; 00219 00220 virtual void disableTimeRegulation() = 0; 00221 00222 virtual void enableTimeConstrained() = 0; 00223 00224 virtual void disableTimeConstrained() = 0; 00225 00226 virtual void timeAdvanceRequest( 00227 const RTI::FedTime& theTime) = 0; 00228 00229 virtual void timeAdvanceRequestAvailable ( 00230 const RTI::FedTime& theTime) = 0; 00231 00232 virtual void nextEventRequest( 00233 const RTI::FedTime& theTime) = 0; 00234 00235 virtual void nextEventRequestAvailable ( 00236 const RTI::FedTime& theTime) = 0; 00237 00238 virtual void flushQueueRequest ( 00239 const RTI::FedTime& theTime) = 0; 00240 00241 virtual void enableAsynchronousDelivery() = 0; 00242 00243 virtual void disableAsynchronousDelivery() = 0; 00244 00245 virtual void queryLBTS(RTI::FedTime& theTime) = 0; 00246 00247 virtual void queryFederateTime(RTI::FedTime& theTime) = 0; 00248 00249 virtual void queryMinNextEventTime ( 00250 RTI::FedTime& theTime) = 0; 00251 00252 virtual void modifyLookahead ( 00253 const RTI::FedTime& theLookahead) = 0; 00254 00255 virtual void queryLookahead ( 00256 RTI::FedTime& theTime) = 0; 00257 00258 virtual void retract( 00259 RTI::EventRetractionHandle theHandle) = 0; 00260 00261 virtual void changeAttributeOrderType( 00262 RTI::ObjectHandle theObject, 00263 const RTI::AttributeHandleSet& theAttributes, 00264 RTI::OrderingHandle theType) = 0; 00265 00266 virtual void changeInteractionOrderType( 00267 RTI::InteractionClassHandle theClass, 00268 RTI::OrderingHandle theType) = 0; 00269 00270 virtual RTI::Region* createRegion ( 00271 RTI::SpaceHandle theSpace, 00272 RTI::ULong numberOfExtents) = 0; 00273 00274 virtual void notifyAboutRegionModification ( 00275 RTI::Region &theRegion) = 0; 00276 00277 virtual void deleteRegion(RTI::Region *theRegion) = 0; 00278 00279 virtual RTI::ObjectHandle registerObjectInstanceWithRegion( 00280 RTI::ObjectClassHandle theClass, 00281 const char* theObject, 00282 RTI::AttributeHandle theAttributes[], 00283 RTI::Region* theRegions[], 00284 RTI::ULong theNumberOfHandles) = 0; 00285 00286 virtual RTI::ObjectHandle registerObjectInstanceWithRegion( 00287 RTI::ObjectClassHandle theClass, 00288 RTI::AttributeHandle theAttributes[], 00289 RTI::Region* theRegions[], 00290 RTI::ULong theNumberOfHandles) = 0; 00291 00292 virtual void associateRegionForUpdates ( 00293 RTI::Region& theRegion, 00294 RTI::ObjectHandle theObject, 00295 const RTI::AttributeHandleSet& theAttributes) = 0; 00296 00297 virtual void unassociateRegionForUpdates( 00298 RTI::Region& theRegion, 00299 RTI::ObjectHandle theObject) = 0; 00300 00301 virtual void subscribeObjectClassAttributesWithRegion( 00302 RTI::ObjectClassHandle theClass, 00303 RTI::Region& theRegion, 00304 const RTI::AttributeHandleSet &attributeList, 00305 RTI::Boolean active = RTI::RTI_TRUE) = 0; 00306 00307 virtual void unsubscribeObjectClassWithRegion( 00308 RTI::ObjectClassHandle theClass, 00309 RTI::Region& theRegion) = 0; 00310 00311 virtual void subscribeInteractionClassWithRegion ( 00312 RTI::InteractionClassHandle theClass, 00313 RTI::Region& theRegion, 00314 RTI::Boolean active = RTI::RTI_TRUE) = 0; 00315 00316 virtual void unsubscribeInteractionClassWithRegion ( 00317 RTI::InteractionClassHandle theClass, 00318 RTI::Region& theRegion) = 0; 00319 00320 virtual RTI::EventRetractionHandle sendInteractionWithRegion( 00321 RTI::InteractionClassHandle theInteraction, 00322 const RTI::ParameterHandleValuePairSet &theParameters, 00323 const RTI::FedTime& theTime, 00324 const char* theTag, 00325 const RTI::Region& theRegion) = 0; 00326 00327 virtual void sendInteractionWithRegion( 00328 RTI::InteractionClassHandle theInteraction, 00329 const RTI::ParameterHandleValuePairSet &theParameters, 00330 const char* theTag, 00331 const RTI::Region& theRegion) = 0; 00332 00333 virtual void requestClassAttributeValueUpdateWithRegion( 00334 RTI::ObjectClassHandle theClass, 00335 const RTI::AttributeHandleSet& theAttributes, 00336 const RTI::Region& theRegion) = 0; 00337 00338 virtual RTI::ObjectClassHandle getObjectClassHandle ( 00339 const char* theName) = 0; 00340 00341 virtual char* getObjectClassName ( 00342 RTI::ObjectClassHandle theHandle) = 0; 00343 00344 virtual RTI::AttributeHandle getAttributeHandle ( 00345 const char* theName, 00346 RTI::ObjectClassHandle whichClass) = 0; 00347 00348 virtual char* getAttributeName ( 00349 RTI::AttributeHandle theHandle, 00350 RTI::ObjectClassHandle whichClass) = 0; 00351 00352 virtual RTI::InteractionClassHandle getInteractionClassHandle ( 00353 const char* theName) = 0; 00354 00355 virtual char* getInteractionClassName ( 00356 RTI::InteractionClassHandle theHandle) = 0; 00357 00358 virtual RTI::ParameterHandle getParameterHandle ( 00359 const char* theName, 00360 RTI::InteractionClassHandle whichClass) = 0; 00361 00362 virtual char* getParameterName ( 00363 RTI::ParameterHandle theHandle, 00364 RTI::InteractionClassHandle whichClass) = 0; 00365 00366 virtual RTI::ObjectHandle getObjectInstanceHandle( 00367 const char* theName) = 0; 00368 00369 virtual char* getObjectInstanceName( 00370 RTI::ObjectHandle theHandle) = 0; 00371 00372 virtual RTI::SpaceHandle getRoutingSpaceHandle ( 00373 const char* theName) = 0; 00374 00375 virtual const char* getRoutingSpaceName ( 00376 const RTI::SpaceHandle theHandle) = 0; 00377 00378 virtual RTI::DimensionHandle getDimensionHandle( 00379 const char* theName, 00380 RTI::SpaceHandle whichSpace) = 0; 00381 00382 virtual char* getDimensionName( 00383 RTI::DimensionHandle theHandle, 00384 RTI::SpaceHandle whichSpace) = 0; 00385 00386 virtual RTI::SpaceHandle 00387 getAttributeRoutingSpaceHandle( 00388 RTI::AttributeHandle theHandle, 00389 RTI::ObjectClassHandle whichClass) = 0; 00390 00391 virtual RTI::ObjectClassHandle getObjectClass ( 00392 RTI::ObjectHandle theObject) = 0; 00393 00394 virtual RTI::SpaceHandle getInteractionRoutingSpaceHandle( 00395 RTI::InteractionClassHandle theHandle) = 0; 00396 00397 virtual RTI::TransportationHandle getTransportationHandle( 00398 const char *theName) = 0; 00399 00400 virtual char* getTransportationName( 00401 RTI::TransportationHandle theHandle) = 0; 00402 00403 virtual RTI::OrderingHandle getOrderingHandle( 00404 const char *theName) = 0; 00405 00406 virtual char* getOrderingName( 00407 RTI::OrderingHandle theHandle) = 0; 00408 00409 virtual void enableClassRelevanceAdvisorySwitch() = 0; 00410 00411 virtual void disableClassRelevanceAdvisorySwitch() = 0; 00412 00413 virtual void enableAttributeRelevanceAdvisorySwitch() = 0; 00414 00415 virtual void disableAttributeRelevanceAdvisorySwitch() = 0; 00416 00417 virtual void enableAttributeScopeAdvisorySwitch() = 0; 00418 00419 virtual void disableAttributeScopeAdvisorySwitch() = 0; 00420 00421 virtual void enableInteractionRelevanceAdvisorySwitch() = 0; 00422 00423 virtual void disableInteractionRelevanceAdvisorySwitch() = 0; 00424 00425 virtual RTI::Boolean tick() = 0; 00426 00427 virtual RTI::Boolean tick( 00428 RTI::TickTime minimum, 00429 RTI::TickTime maximum) = 0; 00430 00431 virtual RTI::RegionToken getRegionToken(RTI::Region*) = 0; 00432 00433 virtual RTI::Region* getRegion(RTI::RegionToken) = 0; 00434 }; 00435 00436 #endif //! DtVrlRtiAmbassador_H_ 00437 #endif 00438 #endif //! HLA 00439