![]() |
MAK RTIspy API Documentation for HLA 1516
|
00001 /********************************************************************* 00002 ** Copyright (c) 2007 MaK Technologies, Inc. 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 /********************************************************************* 00006 ** $RCSfile: fedAmbCallbackQueue1516.h,v $ $Revision: 1.5 $ $State: Exp $ 00007 *********************************************************************/ 00008 00009 #ifndef DtFedAmbCallbackQueue1516_h 00010 #define DtFedAmbCallbackQueue1516_h 00011 #ifdef DtIFSPEC1516 00012 00015 00016 #include <queue> 00017 #include <RTI/Typedefs.h> 00018 #include "fedAmbWrap1516.h" 00019 #include "rtiMsg.h" 00020 00021 class DtFederateMgr; 00022 class DtFedAmbCallback; 00023 00024 typedef std::queue<DtRtiMsg*> DtFedAmbMsgQueue; 00025 00029 class DT_DLL_LRC DtCallbackQueue : public DtFedAmbWrapper 00030 { 00031 public: 00032 00034 DtCallbackQueue(DtFederateMgr* fedMgr = 0); 00035 00037 virtual ~DtCallbackQueue() throw (); 00038 00039 private: 00041 DtCallbackQueue(DtCallbackQueue const& orig); 00043 DtCallbackQueue& operator = (DtCallbackQueue const& orig); 00044 00045 public: 00046 00048 virtual void enableQueue(); 00049 00051 virtual void disableQueue(); 00052 00054 MAKRti::DtString const& name() const; 00055 00057 virtual DtRtiMsg* popMessage(); 00058 00062 00064 virtual void synchronizationPointRegistrationSucceeded(std::wstring const & label) 00065 throw (rti1516::FederateInternalError); 00066 00067 virtual void synchronizationPointRegistrationFailed(std::wstring const & label, 00068 rti1516::SynchronizationFailureReason reason) 00069 throw (rti1516::FederateInternalError); 00070 00072 virtual void announceSynchronizationPoint(std::wstring const & label, 00073 rti1516::VariableLengthData const & theUserSuppliedTag) 00074 throw (rti1516::FederateInternalError); 00075 00077 virtual void federationSynchronized(std::wstring const & label) 00078 throw (rti1516::FederateInternalError); 00079 00081 virtual void initiateFederateSave(std::wstring const & label) 00082 throw (rti1516::UnableToPerformSave, 00083 rti1516::FederateInternalError); 00084 00085 virtual void initiateFederateSave(std::wstring const & label, 00086 rti1516::LogicalTime const & theTime) 00087 throw (rti1516::UnableToPerformSave, 00088 rti1516::InvalidLogicalTime, 00089 rti1516::FederateInternalError); 00090 00092 virtual void federationSaved() 00093 throw (rti1516::FederateInternalError); 00094 00095 virtual void federationNotSaved(rti1516::SaveFailureReason theSaveFailureReason) 00096 throw (rti1516::FederateInternalError); 00097 00099 virtual void federationSaveStatusResponse( 00100 rti1516::FederateHandleSaveStatusPairVector const & theFederateStatusVector) 00101 throw (rti1516::FederateInternalError); 00102 00104 virtual void requestFederationRestoreSucceeded(std::wstring const & label) 00105 throw (rti1516::FederateInternalError); 00106 00107 virtual void requestFederationRestoreFailed(std::wstring const & label) 00108 throw (rti1516::FederateInternalError); 00109 00111 virtual void federationRestoreBegun() 00112 throw (rti1516::FederateInternalError); 00113 00115 virtual void initiateFederateRestore(std::wstring const & label, 00116 rti1516::FederateHandle handle) 00117 throw (rti1516::SpecifiedSaveLabelDoesNotExist, 00118 rti1516::CouldNotInitiateRestore, 00119 rti1516::FederateInternalError); 00120 00122 virtual void federationRestored() 00123 throw (rti1516::FederateInternalError); 00124 00125 virtual void federationNotRestored(rti1516::RestoreFailureReason theRestoreFailureReason) 00126 throw (rti1516::FederateInternalError); 00127 00129 virtual void federationRestoreStatusResponse( 00130 rti1516::FederateHandleRestoreStatusPairVector const & theFederateStatusVector) 00131 throw (rti1516::FederateInternalError); 00132 00136 00138 virtual void startRegistrationForObjectClass(rti1516::ObjectClassHandle theClass) 00139 throw (rti1516::ObjectClassNotPublished, 00140 rti1516::FederateInternalError); 00141 00143 virtual void stopRegistrationForObjectClass(rti1516::ObjectClassHandle theClass) 00144 throw (rti1516::ObjectClassNotPublished, 00145 rti1516::FederateInternalError); 00146 00148 virtual void turnInteractionsOn(rti1516::InteractionClassHandle theHandle) 00149 throw (rti1516::InteractionClassNotPublished, 00150 rti1516::FederateInternalError); 00151 00153 virtual void turnInteractionsOff(rti1516::InteractionClassHandle theHandle) 00154 throw (rti1516::InteractionClassNotPublished, 00155 rti1516::FederateInternalError); 00156 00160 00162 virtual void objectInstanceNameReservationSucceeded(std::wstring const & 00163 theObjectInstanceName) 00164 throw (rti1516::UnknownName, 00165 rti1516::FederateInternalError); 00166 00167 virtual void objectInstanceNameReservationFailed(std::wstring const & 00168 theObjectInstanceName) 00169 throw (rti1516::UnknownName, 00170 rti1516::FederateInternalError); 00171 00173 virtual void discoverObjectInstance(rti1516::ObjectInstanceHandle theObject, 00174 rti1516::ObjectClassHandle theObjectClass, 00175 std::wstring const & theObjectInstanceName) 00176 throw (rti1516::CouldNotDiscover, 00177 rti1516::ObjectClassNotKnown, 00178 rti1516::FederateInternalError); 00179 00181 virtual void reflectAttributeValues 00182 (rti1516::ObjectInstanceHandle theObject, 00183 rti1516::AttributeHandleValueMap const & theAttributeValues, 00184 rti1516::VariableLengthData const & theUserSuppliedTag, 00185 rti1516::OrderType sentOrder, 00186 rti1516::TransportationType theType) 00187 throw (rti1516::ObjectInstanceNotKnown, 00188 rti1516::AttributeNotRecognized, 00189 rti1516::AttributeNotSubscribed, 00190 rti1516::FederateInternalError); 00191 00192 virtual void reflectAttributeValues 00193 (rti1516::ObjectInstanceHandle theObject, 00194 rti1516::AttributeHandleValueMap const & theAttributeValues, 00195 rti1516::VariableLengthData const & theUserSuppliedTag, 00196 rti1516::OrderType sentOrder, 00197 rti1516::TransportationType theType, 00198 rti1516::RegionHandleSet const & theSentRegionHandleSet) 00199 throw (rti1516::ObjectInstanceNotKnown, 00200 rti1516::AttributeNotRecognized, 00201 rti1516::AttributeNotSubscribed, 00202 rti1516::FederateInternalError); 00203 00204 virtual void reflectAttributeValues 00205 (rti1516::ObjectInstanceHandle theObject, 00206 rti1516::AttributeHandleValueMap const & theAttributeValues, 00207 rti1516::VariableLengthData const & theUserSuppliedTag, 00208 rti1516::OrderType sentOrder, 00209 rti1516::TransportationType theType, 00210 rti1516::LogicalTime const & theTime, 00211 rti1516::OrderType receivedOrder) 00212 throw (rti1516::ObjectInstanceNotKnown, 00213 rti1516::AttributeNotRecognized, 00214 rti1516::AttributeNotSubscribed, 00215 rti1516::FederateInternalError); 00216 00217 virtual void reflectAttributeValues 00218 (rti1516::ObjectInstanceHandle theObject, 00219 rti1516::AttributeHandleValueMap const & theAttributeValues, 00220 rti1516::VariableLengthData const & theUserSuppliedTag, 00221 rti1516::OrderType sentOrder, 00222 rti1516::TransportationType theType, 00223 rti1516::LogicalTime const & theTime, 00224 rti1516::OrderType receivedOrder, 00225 rti1516::RegionHandleSet const & theSentRegionHandleSet) 00226 throw (rti1516::ObjectInstanceNotKnown, 00227 rti1516::AttributeNotRecognized, 00228 rti1516::AttributeNotSubscribed, 00229 rti1516::FederateInternalError); 00230 00231 virtual void reflectAttributeValues 00232 (rti1516::ObjectInstanceHandle theObject, 00233 rti1516::AttributeHandleValueMap const & theAttributeValues, 00234 rti1516::VariableLengthData const & theUserSuppliedTag, 00235 rti1516::OrderType sentOrder, 00236 rti1516::TransportationType theType, 00237 rti1516::LogicalTime const & theTime, 00238 rti1516::OrderType receivedOrder, 00239 rti1516::MessageRetractionHandle theHandle) 00240 throw (rti1516::ObjectInstanceNotKnown, 00241 rti1516::AttributeNotRecognized, 00242 rti1516::AttributeNotSubscribed, 00243 rti1516::InvalidLogicalTime, 00244 rti1516::FederateInternalError); 00245 00246 virtual void reflectAttributeValues 00247 (rti1516::ObjectInstanceHandle theObject, 00248 rti1516::AttributeHandleValueMap const & theAttributeValues, 00249 rti1516::VariableLengthData const & theUserSuppliedTag, 00250 rti1516::OrderType sentOrder, 00251 rti1516::TransportationType theType, 00252 rti1516::LogicalTime const & theTime, 00253 rti1516::OrderType receivedOrder, 00254 rti1516::MessageRetractionHandle theHandle, 00255 rti1516::RegionHandleSet const & theSentRegionHandleSet) 00256 throw (rti1516::ObjectInstanceNotKnown, 00257 rti1516::AttributeNotRecognized, 00258 rti1516::AttributeNotSubscribed, 00259 rti1516::InvalidLogicalTime, 00260 rti1516::FederateInternalError); 00261 00263 virtual void receiveInteraction 00264 (rti1516::InteractionClassHandle theInteraction, 00265 rti1516::ParameterHandleValueMap const & theParameterValues, 00266 rti1516::VariableLengthData const & theUserSuppliedTag, 00267 rti1516::OrderType sentOrder, 00268 rti1516::TransportationType theType) 00269 throw (rti1516::InteractionClassNotRecognized, 00270 rti1516::InteractionParameterNotRecognized, 00271 rti1516::InteractionClassNotSubscribed, 00272 rti1516::FederateInternalError); 00273 00274 virtual void receiveInteraction 00275 (rti1516::InteractionClassHandle theInteraction, 00276 rti1516::ParameterHandleValueMap const & theParameterValues, 00277 rti1516::VariableLengthData const & theUserSuppliedTag, 00278 rti1516::OrderType sentOrder, 00279 rti1516::TransportationType theType, 00280 rti1516::RegionHandleSet const & theSentRegionHandleSet) 00281 throw (rti1516::InteractionClassNotRecognized, 00282 rti1516::InteractionParameterNotRecognized, 00283 rti1516::InteractionClassNotSubscribed, 00284 rti1516::FederateInternalError); 00285 00286 virtual void receiveInteraction 00287 (rti1516::InteractionClassHandle theInteraction, 00288 rti1516::ParameterHandleValueMap const & theParameterValues, 00289 rti1516::VariableLengthData const & theUserSuppliedTag, 00290 rti1516::OrderType sentOrder, 00291 rti1516::TransportationType theType, 00292 rti1516::LogicalTime const & theTime, 00293 rti1516::OrderType receivedOrder) 00294 throw (rti1516::InteractionClassNotRecognized, 00295 rti1516::InteractionParameterNotRecognized, 00296 rti1516::InteractionClassNotSubscribed, 00297 rti1516::FederateInternalError); 00298 00299 virtual void receiveInteraction 00300 (rti1516::InteractionClassHandle theInteraction, 00301 rti1516::ParameterHandleValueMap const & theParameterValues, 00302 rti1516::VariableLengthData const & theUserSuppliedTag, 00303 rti1516::OrderType sentOrder, 00304 rti1516::TransportationType theType, 00305 rti1516::LogicalTime const & theTime, 00306 rti1516::OrderType receivedOrder, 00307 rti1516::RegionHandleSet const & theSentRegionHandleSet) 00308 throw (rti1516::InteractionClassNotRecognized, 00309 rti1516::InteractionParameterNotRecognized, 00310 rti1516::InteractionClassNotSubscribed, 00311 rti1516::FederateInternalError); 00312 00313 virtual void receiveInteraction 00314 (rti1516::InteractionClassHandle theInteraction, 00315 rti1516::ParameterHandleValueMap const & theParameterValues, 00316 rti1516::VariableLengthData const & theUserSuppliedTag, 00317 rti1516::OrderType sentOrder, 00318 rti1516::TransportationType theType, 00319 rti1516::LogicalTime const & theTime, 00320 rti1516::OrderType receivedOrder, 00321 rti1516::MessageRetractionHandle theHandle) 00322 throw (rti1516::InteractionClassNotRecognized, 00323 rti1516::InteractionParameterNotRecognized, 00324 rti1516::InteractionClassNotSubscribed, 00325 rti1516::InvalidLogicalTime, 00326 rti1516::FederateInternalError); 00327 00328 virtual void receiveInteraction 00329 (rti1516::InteractionClassHandle theInteraction, 00330 rti1516::ParameterHandleValueMap const & theParameterValues, 00331 rti1516::VariableLengthData const & theUserSuppliedTag, 00332 rti1516::OrderType sentOrder, 00333 rti1516::TransportationType theType, 00334 rti1516::LogicalTime const & theTime, 00335 rti1516::OrderType receivedOrder, 00336 rti1516::MessageRetractionHandle theHandle, 00337 rti1516::RegionHandleSet const & theSentRegionHandleSet) 00338 throw (rti1516::InteractionClassNotRecognized, 00339 rti1516::InteractionParameterNotRecognized, 00340 rti1516::InteractionClassNotSubscribed, 00341 rti1516::InvalidLogicalTime, 00342 rti1516::FederateInternalError); 00343 00345 virtual void removeObjectInstance(rti1516::ObjectInstanceHandle theObject, 00346 rti1516::VariableLengthData const & theUserSuppliedTag, 00347 rti1516::OrderType sentOrder) 00348 throw (rti1516::ObjectInstanceNotKnown, 00349 rti1516::FederateInternalError); 00350 00351 virtual void removeObjectInstance(rti1516::ObjectInstanceHandle theObject, 00352 rti1516::VariableLengthData const & theUserSuppliedTag, 00353 rti1516::OrderType sentOrder, 00354 rti1516::LogicalTime const & theTime, 00355 rti1516::OrderType receivedOrder) 00356 throw (rti1516::ObjectInstanceNotKnown, 00357 rti1516::FederateInternalError); 00358 00359 virtual void removeObjectInstance(rti1516::ObjectInstanceHandle theObject, 00360 rti1516::VariableLengthData const & theUserSuppliedTag, 00361 rti1516::OrderType sentOrder, 00362 rti1516::LogicalTime const & theTime, 00363 rti1516::OrderType receivedOrder, 00364 rti1516::MessageRetractionHandle theHandle) 00365 throw (rti1516::ObjectInstanceNotKnown, 00366 rti1516::InvalidLogicalTime, 00367 rti1516::FederateInternalError); 00368 00370 virtual void attributesInScope 00371 (rti1516::ObjectInstanceHandle theObject, 00372 rti1516::AttributeHandleSet const & theAttributes) 00373 throw (rti1516::ObjectInstanceNotKnown, 00374 rti1516::AttributeNotRecognized, 00375 rti1516::AttributeNotSubscribed, 00376 rti1516::FederateInternalError); 00377 00379 virtual void attributesOutOfScope 00380 (rti1516::ObjectInstanceHandle theObject, 00381 rti1516::AttributeHandleSet const & theAttributes) 00382 throw (rti1516::ObjectInstanceNotKnown, 00383 rti1516::AttributeNotRecognized, 00384 rti1516::AttributeNotSubscribed, 00385 rti1516::FederateInternalError); 00386 00388 virtual void provideAttributeValueUpdate 00389 (rti1516::ObjectInstanceHandle theObject, 00390 rti1516::AttributeHandleSet const & theAttributes, 00391 rti1516::VariableLengthData const & theUserSuppliedTag) 00392 throw (rti1516::ObjectInstanceNotKnown, 00393 rti1516::AttributeNotRecognized, 00394 rti1516::AttributeNotOwned, 00395 rti1516::FederateInternalError); 00396 00398 virtual void turnUpdatesOnForObjectInstance 00399 (rti1516::ObjectInstanceHandle theObject, 00400 rti1516::AttributeHandleSet const & theAttributes) 00401 throw (rti1516::ObjectInstanceNotKnown, 00402 rti1516::AttributeNotRecognized, 00403 rti1516::AttributeNotOwned, 00404 rti1516::FederateInternalError); 00405 00407 virtual void turnUpdatesOffForObjectInstance 00408 (rti1516::ObjectInstanceHandle theObject, 00409 rti1516::AttributeHandleSet const & theAttributes) 00410 throw (rti1516::ObjectInstanceNotKnown, 00411 rti1516::AttributeNotRecognized, 00412 rti1516::AttributeNotOwned, 00413 rti1516::FederateInternalError); 00414 00418 00420 virtual void requestAttributeOwnershipAssumption 00421 (rti1516::ObjectInstanceHandle theObject, 00422 rti1516::AttributeHandleSet const & offeredAttributes, 00423 rti1516::VariableLengthData const & theUserSuppliedTag) 00424 throw (rti1516::ObjectInstanceNotKnown, 00425 rti1516::AttributeNotRecognized, 00426 rti1516::AttributeAlreadyOwned, 00427 rti1516::AttributeNotPublished, 00428 rti1516::FederateInternalError); 00429 00431 virtual void requestDivestitureConfirmation 00432 (rti1516::ObjectInstanceHandle theObject, 00433 rti1516::AttributeHandleSet const & releasedAttributes) 00434 throw (rti1516::ObjectInstanceNotKnown, 00435 rti1516::AttributeNotRecognized, 00436 rti1516::AttributeNotOwned, 00437 rti1516::AttributeDivestitureWasNotRequested, 00438 rti1516::FederateInternalError); 00439 00441 virtual void attributeOwnershipAcquisitionNotification 00442 (rti1516::ObjectInstanceHandle theObject, 00443 rti1516::AttributeHandleSet const & securedAttributes, 00444 rti1516::VariableLengthData const & theUserSuppliedTag) 00445 throw (rti1516::ObjectInstanceNotKnown, 00446 rti1516::AttributeNotRecognized, 00447 rti1516::AttributeAcquisitionWasNotRequested, 00448 rti1516::AttributeAlreadyOwned, 00449 rti1516::AttributeNotPublished, 00450 rti1516::FederateInternalError); 00451 00453 virtual void attributeOwnershipUnavailable 00454 (rti1516::ObjectInstanceHandle theObject, 00455 rti1516::AttributeHandleSet const & theAttributes) 00456 throw (rti1516::ObjectInstanceNotKnown, 00457 rti1516::AttributeNotRecognized, 00458 rti1516::AttributeAlreadyOwned, 00459 rti1516::AttributeAcquisitionWasNotRequested, 00460 rti1516::FederateInternalError); 00461 00463 virtual void requestAttributeOwnershipRelease 00464 (rti1516::ObjectInstanceHandle theObject, 00465 rti1516::AttributeHandleSet const & candidateAttributes, 00466 rti1516::VariableLengthData const & theUserSuppliedTag) 00467 throw (rti1516::ObjectInstanceNotKnown, 00468 rti1516::AttributeNotRecognized, 00469 rti1516::AttributeNotOwned, 00470 rti1516::FederateInternalError); 00471 00473 virtual void confirmAttributeOwnershipAcquisitionCancellation 00474 (rti1516::ObjectInstanceHandle theObject, 00475 rti1516::AttributeHandleSet const & theAttributes) 00476 throw (rti1516::ObjectInstanceNotKnown, 00477 rti1516::AttributeNotRecognized, 00478 rti1516::AttributeAlreadyOwned, 00479 rti1516::AttributeAcquisitionWasNotCanceled, 00480 rti1516::FederateInternalError); 00481 00483 virtual void informAttributeOwnership(rti1516::ObjectInstanceHandle theObject, 00484 rti1516::AttributeHandle theAttribute, 00485 rti1516::FederateHandle theOwner) 00486 throw (rti1516::ObjectInstanceNotKnown, 00487 rti1516::AttributeNotRecognized, 00488 rti1516::FederateInternalError); 00489 00490 virtual void attributeIsNotOwned(rti1516::ObjectInstanceHandle theObject, 00491 rti1516::AttributeHandle theAttribute) 00492 throw (rti1516::ObjectInstanceNotKnown, 00493 rti1516::AttributeNotRecognized, 00494 rti1516::FederateInternalError); 00495 00496 virtual void attributeIsOwnedByRTI(rti1516::ObjectInstanceHandle theObject, 00497 rti1516::AttributeHandle theAttribute) 00498 throw (rti1516::ObjectInstanceNotKnown, 00499 rti1516::AttributeNotRecognized, 00500 rti1516::FederateInternalError); 00501 00505 00507 virtual void timeRegulationEnabled(rti1516::LogicalTime const & theFederateTime) 00508 throw (rti1516::InvalidLogicalTime, 00509 rti1516::NoRequestToEnableTimeRegulationWasPending, 00510 rti1516::FederateInternalError); 00511 00513 virtual void timeConstrainedEnabled(rti1516::LogicalTime const & theFederateTime) 00514 throw (rti1516::InvalidLogicalTime, 00515 rti1516::NoRequestToEnableTimeConstrainedWasPending, 00516 rti1516::FederateInternalError); 00517 00519 virtual void timeAdvanceGrant(rti1516::LogicalTime const & theTime) 00520 throw (rti1516::InvalidLogicalTime, 00521 rti1516::JoinedFederateIsNotInTimeAdvancingState, 00522 rti1516::FederateInternalError); 00523 00525 virtual void requestRetraction(rti1516::MessageRetractionHandle theHandle) 00526 throw (rti1516::FederateInternalError); 00527 00528 protected: 00529 00531 virtual std::auto_ptr<rti1516::LogicalTime> copyTime( 00532 rti1516::LogicalTime const& timeValue); 00533 00534 protected: 00535 00536 DtFederateMgr* myFedMgr; 00537 DtFedAmbMsgQueue myFedAmbQueue; 00538 bool myQueueCallback; 00539 const MAKRti::DtString myName; 00540 }; 00541 00542 #endif //! DtIFSPEC1516 00543 #endif //! DtFedAmbCallbackQueue1516_h