![]() |
MAK RTIspy API Documentation for HLA 1.3
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2001 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: momObserver.h,v $ $Revision: 1.9 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #ifndef DtMomObserver_H_ 00013 #define DtMomObserver_H_ 00014 00015 #ifdef DtMOM 00016 #ifdef DtIFSPEC13 00017 00018 #include "ambObserver.h" 00019 #include "momArgument.h" 00020 class DtMomMgr; 00021 00022 00023 class DtMomObserver : public DtRtiAmbassadorObserver 00024 { 00025 public: 00026 00028 DtMomObserver( DtMomMgr* momMgrPtr ); 00029 00031 virtual ~DtMomObserver(); 00032 00034 DtMomObserver( const DtMomObserver& orig ); 00035 00037 DtMomObserver& operator=( const DtMomObserver& orig ); 00038 00040 virtual void reset(); 00041 00044 virtual unsigned long objectRegisterCount() const; 00045 00048 virtual unsigned long objectDeleteCount() const; 00049 00051 00052 virtual void createFederationExecution( 00053 const char* executionName, 00054 const char* FED, 00055 RTI::Exception* except = 0 ); 00056 00057 virtual void destroyFederationExecution( 00058 const char* executionName, 00059 RTI::Exception* except = 0 ); 00060 00061 virtual void joinFederationExecution( 00062 const char* yourName, 00063 const char* executionName, 00064 RTI::FederateAmbassador* federateAmbassadorReference, 00065 RTI::FederateHandle& handle, 00066 RTI::Exception* except = 0 ); 00067 00068 virtual void resignFederationExecution( 00069 RTI::ResignAction theAction, 00070 RTI::Exception* except = 0 ); 00071 00072 virtual void registerFederationSynchronizationPoint( 00073 const char* label, 00074 const char* theTag, 00075 RTI::Exception* except = 0 ); 00076 00077 virtual void registerFederationSynchronizationPoint( 00078 const char* label, 00079 const char* theTag, 00080 const RTI::FederateHandleSet& syncSet, 00081 RTI::Exception* except = 0 ); 00082 00083 virtual void synchronizationPointAchieved( 00084 const char* label, 00085 RTI::Exception* except = 0 ); 00086 00087 virtual void requestFederationSave( 00088 const char* label, 00089 const RTI::FedTime& theTime, 00090 RTI::Exception* except = 0 ); 00091 00092 virtual void requestFederationSave( 00093 const char* label, 00094 RTI::Exception* except = 0 ); 00095 00096 virtual void federateSaveBegun( 00097 RTI::Exception* except = 0 ); 00098 00099 virtual void federateSaveComplete( 00100 RTI::Exception* except = 0 ); 00101 00102 virtual void federateSaveNotComplete( 00103 RTI::Exception* except = 0 ); 00104 00105 virtual void requestFederationRestore( 00106 const char* label, 00107 RTI::Exception* except = 0 ); 00108 00109 virtual void federateRestoreComplete( 00110 RTI::Exception* except = 0 ); 00111 00112 virtual void federateRestoreNotComplete( 00113 RTI::Exception* except = 0 ); 00115 00117 00118 00119 virtual void publishObjectClass( 00120 RTI::ObjectClassHandle theClass, 00121 const RTI::AttributeHandleSet& attributeList, 00122 RTI::Exception* except = 0 ); 00123 00124 virtual void unpublishObjectClass( 00125 RTI::ObjectClassHandle theClass, 00126 RTI::Exception* except = 0 ); 00127 00128 virtual void publishInteractionClass( 00129 RTI::InteractionClassHandle theInteraction, 00130 RTI::Exception* except = 0 ); 00131 00132 virtual void unpublishInteractionClass( 00133 RTI::InteractionClassHandle theInteraction, 00134 RTI::Exception* except = 0 ); 00135 00136 virtual void subscribeObjectClassAttributes( 00137 RTI::ObjectClassHandle theClass, 00138 const RTI::AttributeHandleSet& attributeList, 00139 RTI::Boolean active = RTI::RTI_TRUE, 00140 RTI::Exception* except = 0 ); 00141 00142 virtual void unsubscribeObjectClass( 00143 RTI::ObjectClassHandle theClass, 00144 RTI::Exception* except = 0 ); 00145 00146 virtual void subscribeInteractionClass( 00147 RTI::InteractionClassHandle theClass, 00148 RTI::Boolean active = RTI::RTI_TRUE, 00149 RTI::Exception* except = 0 ); 00150 00151 virtual void unsubscribeInteractionClass( 00152 RTI::InteractionClassHandle theClass, 00153 RTI::Exception* except = 0 ); 00155 00157 00158 virtual void registerObjectInstance( 00159 RTI::ObjectClassHandle theClass, 00160 const char* theObject, 00161 RTI::ObjectHandle& handle, 00162 RTI::Exception* except = 0 ); 00163 00164 virtual void registerObjectInstance( 00165 RTI::ObjectClassHandle theClass, 00166 RTI::ObjectHandle& handle, 00167 RTI::Exception* except = 0 ); 00168 00169 virtual void updateAttributeValues( 00170 RTI::ObjectHandle theObject, 00171 const RTI::AttributeHandleValuePairSet& theAttributes, 00172 const RTI::FedTime& theTime, 00173 const char* theTag, 00174 RTI::EventRetractionHandle& handle, 00175 RTI::Exception* except = 0 ); 00176 00177 virtual void updateAttributeValues( 00178 RTI::ObjectHandle theObject, 00179 const RTI::AttributeHandleValuePairSet& theAttributes, 00180 const char* theTag, 00181 RTI::Exception* except = 0 ); 00182 00183 virtual void sendInteraction( 00184 RTI::InteractionClassHandle theInteraction, 00185 const RTI::ParameterHandleValuePairSet& theParameters, 00186 const RTI::FedTime& theTime, 00187 const char* theTag, 00188 RTI::EventRetractionHandle& handle, 00189 RTI::Exception* except = 0 ); 00190 00191 virtual void sendInteraction( 00192 RTI::InteractionClassHandle theInteraction, 00193 const RTI::ParameterHandleValuePairSet& theParameters, 00194 const char* theTag, 00195 RTI::Exception* except = 0 ); 00196 00197 virtual void deleteObjectInstance( 00198 RTI::ObjectHandle theObject, 00199 const RTI::FedTime& theTime, 00200 const char* theTag, 00201 RTI::EventRetractionHandle& handle, 00202 RTI::Exception* except = 0 ); 00203 00204 virtual void deleteObjectInstance( 00205 RTI::ObjectHandle theObject, 00206 const char* theTag, 00207 RTI::Exception* except = 0 ); 00208 00209 virtual void localDeleteObjectInstance( 00210 RTI::ObjectHandle theObject, 00211 RTI::Exception* except = 0 ); 00212 00213 virtual void changeAttributeTransportationType( 00214 RTI::ObjectHandle theObject, 00215 const RTI::AttributeHandleSet& theAttributes, 00216 RTI::TransportationHandle theType, 00217 RTI::Exception* except = 0 ); 00218 00219 virtual void changeInteractionTransportationType( 00220 RTI::InteractionClassHandle theClass, 00221 RTI::TransportationHandle theType, 00222 RTI::Exception* except = 0 ); 00223 00224 virtual void requestObjectAttributeValueUpdate( 00225 RTI::ObjectHandle theObject, 00226 const RTI::AttributeHandleSet& theAttributes, 00227 RTI::Exception* except = 0 ); 00228 00229 virtual void requestClassAttributeValueUpdate( 00230 RTI::ObjectClassHandle theClass, 00231 const RTI::AttributeHandleSet& theAttributes, 00232 RTI::Exception* except = 0 ); 00234 00236 00237 virtual void unconditionalAttributeOwnershipDivestiture( 00238 RTI::ObjectHandle theObject, 00239 const RTI::AttributeHandleSet& theAttributes, 00240 RTI::Exception* except = 0 ); 00241 00242 virtual void negotiatedAttributeOwnershipDivestiture( 00243 RTI::ObjectHandle theObject, 00244 const RTI::AttributeHandleSet& theAttributes, 00245 const char* theTag, 00246 RTI::Exception* except = 0 ); 00247 00248 virtual void attributeOwnershipAcquisition( 00249 RTI::ObjectHandle theObject, 00250 const RTI::AttributeHandleSet& desiredAttributes, 00251 const char* theTag, 00252 RTI::Exception* except = 0 ); 00253 00254 virtual void attributeOwnershipAcquisitionIfAvailable( 00255 RTI::ObjectHandle theObject, 00256 const RTI::AttributeHandleSet& desiredAttributes, 00257 RTI::Exception* except = 0 ); 00258 00259 virtual void attributeOwnershipReleaseResponse( 00260 RTI::ObjectHandle theObject, 00261 const RTI::AttributeHandleSet& theAttributes, 00262 RTI::AttributeHandleSet* set, 00263 RTI::Exception* except = 0 ); 00264 00265 virtual void cancelNegotiatedAttributeOwnershipDivestiture( 00266 RTI::ObjectHandle theObject, 00267 const RTI::AttributeHandleSet& theAttributes, 00268 RTI::Exception* except = 0 ); 00269 00270 virtual void cancelAttributeOwnershipAcquisition( 00271 RTI::ObjectHandle theObject, 00272 const RTI::AttributeHandleSet& theAttributes, 00273 RTI::Exception* except = 0 ); 00274 00275 virtual void queryAttributeOwnership( 00276 RTI::ObjectHandle theObject, 00277 RTI::AttributeHandle theAttribute, 00278 RTI::Exception* except = 0 ); 00279 00280 virtual void isAttributeOwnedByFederate( 00281 RTI::ObjectHandle theObject, 00282 RTI::AttributeHandle theAttribute, 00283 RTI::Boolean boolean, 00284 RTI::Exception* except = 0 ); 00286 00288 00289 virtual void enableTimeRegulation( 00290 const RTI::FedTime& theFederateTime, 00291 const RTI::FedTime& theLookahead, 00292 RTI::Exception* except = 0 ); 00293 00294 virtual void disableTimeRegulation( 00295 RTI::Exception* except = 0 ); 00296 00297 virtual void enableTimeConstrained( 00298 RTI::Exception* except = 0 ); 00299 00300 virtual void disableTimeConstrained( 00301 RTI::Exception* except = 0 ); 00302 00303 virtual void timeAdvanceRequest( 00304 const RTI::FedTime& theTime, 00305 RTI::Exception* except = 0 ); 00306 00307 virtual void timeAdvanceRequestAvailable( 00308 const RTI::FedTime& theTime, 00309 RTI::Exception* except = 0 ); 00310 00311 virtual void nextEventRequest( 00312 const RTI::FedTime& theTime, 00313 RTI::Exception* except = 0 ); 00314 00315 virtual void nextEventRequestAvailable( 00316 const RTI::FedTime& theTime, 00317 RTI::Exception* except = 0 ); 00318 00319 virtual void flushQueueRequest( 00320 const RTI::FedTime& theTime, 00321 RTI::Exception* except = 0 ); 00322 00323 virtual void enableAsynchronousDelivery( 00324 RTI::Exception* except = 0 ); 00325 00326 virtual void disableAsynchronousDelivery( 00327 RTI::Exception* except = 0 ); 00328 00329 virtual void queryLBTS( 00330 RTI::FedTime& theTime, 00331 RTI::Exception* except = 0 ); 00332 00333 virtual void queryFederateTime( 00334 RTI::FedTime& theTime, 00335 RTI::Exception* except = 0 ); 00336 00337 virtual void queryMinNextEventTime( 00338 RTI::FedTime& theTime, 00339 RTI::Exception* except = 0 ); 00340 00341 virtual void modifyLookahead( 00342 const RTI::FedTime& theLookahead, 00343 RTI::Exception* except = 0 ); 00344 00345 virtual void queryLookahead( 00346 RTI::FedTime& theTime, 00347 RTI::Exception* except = 0 ); 00348 00349 virtual void retract( 00350 RTI::EventRetractionHandle theHandle, 00351 RTI::Exception* except = 0 ); 00352 00353 virtual void changeAttributeOrderType( 00354 RTI::ObjectHandle theObject, 00355 const RTI::AttributeHandleSet& theAttributes, 00356 RTI::OrderingHandle theType, 00357 RTI::Exception* except = 0 ); 00358 00359 virtual void changeInteractionOrderType( 00360 RTI::InteractionClassHandle theClass, 00361 RTI::OrderingHandle theType, 00362 RTI::Exception* except = 0 ); 00364 00366 00367 virtual void createRegion( 00368 RTI::SpaceHandle theSpace, 00369 RTI::ULong numberOfExtents, 00370 RTI::Region* region, 00371 RTI::Exception* except = 0 ); 00372 00373 virtual void notifyAboutRegionModification( 00374 RTI::Region& theRegion, 00375 RTI::Exception* except = 0 ); 00376 00377 virtual void deleteRegion( 00378 RTI::Region* theRegion, 00379 RTI::Exception* except = 0 ); 00380 00381 virtual void registerObjectInstanceWithRegion( 00382 RTI::ObjectClassHandle theClass, 00383 const char* theObject, 00384 RTI::AttributeHandle theAttributes[], 00385 RTI::Region* theRegions[], 00386 RTI::ULong theNumberOfHandles, 00387 RTI::ObjectHandle& handle, 00388 RTI::Exception* except = 0 ); 00389 00390 virtual void registerObjectInstanceWithRegion( 00391 RTI::ObjectClassHandle theClass, 00392 RTI::AttributeHandle theAttributes[], 00393 RTI::Region* theRegions[], 00394 RTI::ULong theNumberOfHandles, 00395 RTI::ObjectHandle& handle, 00396 RTI::Exception* except = 0 ); 00397 00398 virtual void associateRegionForUpdates( 00399 RTI::Region& theRegion, 00400 RTI::ObjectHandle theObject, 00401 const RTI::AttributeHandleSet& theAttributes, 00402 RTI::Exception* except = 0 ); 00403 00404 virtual void unassociateRegionForUpdates( 00405 RTI::Region& theRegion, 00406 RTI::ObjectHandle theObject, 00407 RTI::Exception* except = 0 ); 00408 00409 virtual void subscribeObjectClassAttributesWithRegion( 00410 RTI::ObjectClassHandle theClass, 00411 RTI::Region& theRegion, 00412 const RTI::AttributeHandleSet& attributeList, 00413 RTI::Boolean active = RTI::RTI_TRUE, 00414 RTI::Exception* except = 0 ); 00415 00416 virtual void unsubscribeObjectClassWithRegion( 00417 RTI::ObjectClassHandle theClass, 00418 RTI::Region& theRegion, 00419 RTI::Exception* except = 0 ); 00420 00421 virtual void subscribeInteractionClassWithRegion( 00422 RTI::InteractionClassHandle theClass, 00423 RTI::Region& theRegion, 00424 RTI::Boolean active = RTI::RTI_TRUE, 00425 RTI::Exception* except = 0 ); 00426 00427 virtual void unsubscribeInteractionClassWithRegion( 00428 RTI::InteractionClassHandle theClass, 00429 RTI::Region& theRegion, 00430 RTI::Exception* except = 0 ); 00431 00432 virtual void sendInteractionWithRegion( 00433 RTI::InteractionClassHandle theInteraction, 00434 const RTI::ParameterHandleValuePairSet& theParameters, 00435 const RTI::FedTime& theTime, 00436 const char* theTag, 00437 const RTI::Region& theRegion, 00438 RTI::EventRetractionHandle& handle, 00439 RTI::Exception* except = 0 ); 00440 00441 virtual void sendInteractionWithRegion( 00442 RTI::InteractionClassHandle theInteraction, 00443 const RTI::ParameterHandleValuePairSet& theParameters, 00444 const char* theTag, 00445 const RTI::Region& theRegion, 00446 RTI::Exception* except = 0 ); 00447 00448 virtual void requestClassAttributeValueUpdateWithRegion( 00449 RTI::ObjectClassHandle theClass, 00450 const RTI::AttributeHandleSet& theAttributes, 00451 const RTI::Region& theRegion, 00452 RTI::Exception* except = 0 ); 00454 00456 00457 virtual void getObjectClassHandle( 00458 const char* theName, 00459 RTI::ObjectClassHandle& handle, 00460 RTI::Exception* except = 0 ); 00461 00462 virtual void getObjectClassName( 00463 RTI::ObjectClassHandle theHandle, 00464 char* className, 00465 RTI::Exception* except = 0 ); 00466 00467 virtual void getAttributeHandle( 00468 const char* theName, 00469 RTI::ObjectClassHandle whichClass, 00470 RTI::AttributeHandle& handle, 00471 RTI::Exception* except = 0 ); 00472 00473 virtual void getAttributeName( 00474 RTI::AttributeHandle theHandle, 00475 RTI::ObjectClassHandle whichClass, 00476 char* attributeName, 00477 RTI::Exception* except = 0 ); 00478 00479 virtual void getInteractionClassHandle( 00480 const char* theName, 00481 RTI::InteractionClassHandle& handle, 00482 RTI::Exception* except = 0 ); 00483 00484 virtual void getInteractionClassName( 00485 RTI::InteractionClassHandle theHandle, 00486 char* className, 00487 RTI::Exception* except = 0 ); 00488 00489 virtual void getParameterHandle( 00490 const char* theName, 00491 RTI::InteractionClassHandle whichClass, 00492 RTI::ParameterHandle& handle, 00493 RTI::Exception* except = 0 ); 00494 00495 virtual void getParameterName( 00496 RTI::ParameterHandle theHandle, 00497 RTI::InteractionClassHandle whichClass, 00498 char* paramName, 00499 RTI::Exception* except = 0 ); 00500 00501 virtual void getObjectInstanceHandle( 00502 const char* theName, 00503 RTI::ObjectHandle& handle, 00504 RTI::Exception* except = 0 ); 00505 00506 virtual void getObjectInstanceName( 00507 RTI::ObjectHandle theHandle, 00508 char* objectInstanceName, 00509 RTI::Exception* except = 0 ); 00510 00511 virtual void getRoutingSpaceHandle( 00512 const char* theName, 00513 RTI::SpaceHandle& handle, 00514 RTI::Exception* except = 0 ); 00515 00516 virtual void getRoutingSpaceName( 00517 RTI::SpaceHandle theHandle, 00518 char* spaceName, 00519 RTI::Exception* except = 0 ); 00520 00521 virtual void getDimensionHandle( 00522 const char* theName, 00523 RTI::SpaceHandle whichSpace, 00524 RTI::DimensionHandle& handle, 00525 RTI::Exception* except = 0 ); 00526 00527 virtual void getDimensionName( 00528 RTI::DimensionHandle theHandle, 00529 RTI::SpaceHandle whichSpace, 00530 char* dimensionName, 00531 RTI::Exception* except = 0 ); 00532 00533 virtual void getAttributeRoutingSpaceHandle( 00534 RTI::AttributeHandle theHandle, 00535 RTI::ObjectClassHandle whichClass, 00536 RTI::SpaceHandle& handle, 00537 RTI::Exception* except = 0 ); 00538 00539 virtual void getObjectClass( 00540 RTI::ObjectHandle theObject, 00541 RTI::ObjectClassHandle& handle, 00542 RTI::Exception* except = 0 ); 00543 00544 virtual void getInteractionRoutingSpaceHandle( 00545 RTI::InteractionClassHandle theHandle, 00546 RTI::SpaceHandle& handle, 00547 RTI::Exception* except = 0 ); 00548 00549 virtual void getTransportationHandle( 00550 const char* theName, 00551 RTI::TransportationHandle& handle, 00552 RTI::Exception* except = 0 ); 00553 00554 virtual void getTransportationName( 00555 RTI::TransportationHandle theHandle, 00556 char* transportationName, 00557 RTI::Exception* except = 0 ); 00558 00559 virtual void getOrderingHandle( 00560 const char* theName, 00561 RTI::OrderingHandle& handle, 00562 RTI::Exception* except = 0 ); 00563 00564 virtual void getOrderingName( 00565 RTI::OrderingHandle theHandle, 00566 char* orderingName, 00567 RTI::Exception* except = 0 ); 00568 00569 virtual void enableClassRelevanceAdvisorySwitch( 00570 RTI::Exception* except = 0 ); 00571 00572 virtual void disableClassRelevanceAdvisorySwitch( 00573 RTI::Exception* except = 0 ); 00574 00575 virtual void enableAttributeRelevanceAdvisorySwitch( 00576 RTI::Exception* except = 0 ); 00577 00578 virtual void disableAttributeRelevanceAdvisorySwitch( 00579 RTI::Exception* except = 0 ); 00580 00581 virtual void enableAttributeScopeAdvisorySwitch( 00582 RTI::Exception* except = 0 ); 00583 00584 virtual void disableAttributeScopeAdvisorySwitch( 00585 RTI::Exception* except = 0 ); 00586 00587 virtual void enableInteractionRelevanceAdvisorySwitch( 00588 RTI::Exception* except = 0 ); 00589 00590 virtual void disableInteractionRelevanceAdvisorySwitch( 00591 RTI::Exception* except = 0 ); 00592 00593 virtual void tick( 00594 RTI::Boolean result, 00595 RTI::Exception* except = 0 ); 00596 00597 virtual void tick( 00598 RTI::TickTime minimum, 00599 RTI::TickTime maximum, 00600 RTI::Boolean result, 00601 RTI::Exception* except = 0 ); 00602 00603 virtual void getRegionToken( 00604 RTI::Region*, 00605 RTI::RegionToken& token, 00606 RTI::Exception* except = 0 ); 00607 00608 virtual void getRegion( 00609 RTI::RegionToken, 00610 RTI::Region* region, 00611 RTI::Exception* except = 0 ); 00613 00614 protected: 00615 00616 virtual void observe( const MAKRti::DtString& functionName, 00617 RTI::Exception* except = 0, 00618 const DtMomArgument& argument1 = theDfltMomArgument, 00619 const DtMomArgument& argument2 = theDfltMomArgument, 00620 const DtMomArgument& argument3 = theDfltMomArgument, 00621 const DtMomArgument& argument4 = theDfltMomArgument, 00622 const DtMomArgument& argument5 = theDfltMomArgument, 00623 const DtMomArgument& returnArg = theDfltRetVal ); 00624 00625 protected: 00626 DtMomMgr* myMomMgr; 00627 00628 unsigned long myRegisterCount; 00629 unsigned long myDeleteCount; 00630 00631 protected: 00632 00633 static const DtMomArgument theDfltMomArgument; 00634 static DtMomArgument theDfltRetVal; 00635 }; 00636 00637 #endif //! DtIFSPEC1516 00638 #endif //! DtMOM 00639 #endif //! DtMomObserver_H_ 00640 00641