[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi/libRTI/ieee1516-2000 RTIambassadorFactory...
From: |
CERTI CVS commits |
Subject: |
[certi-cvs] certi/libRTI/ieee1516-2000 RTIambassadorFactory... |
Date: |
Thu, 06 Mar 2014 12:14:11 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 14/03/06 12:14:11
Modified files:
libRTI/ieee1516-2000: RTIambassadorFactory.cpp
RTIHandleFactory.h RTIambassador.cpp
CMakeLists.txt
Added files:
libRTI/ieee1516-2000: RTIambassadorImplementation.cpp
RTIambassadorImplementation.h
Removed files:
libRTI/ieee1516-2000: RTIambassador.h
Log message:
Rename RTiambassador implementation to appropriate name
and put it in certi:: namespace while leaving polymorphic RTIambassador
in rti1516:: namespace.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/ieee1516-2000/RTIambassadorFactory.cpp?cvsroot=certi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/ieee1516-2000/RTIHandleFactory.h?cvsroot=certi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/ieee1516-2000/RTIambassador.cpp?cvsroot=certi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/ieee1516-2000/CMakeLists.txt?cvsroot=certi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/ieee1516-2000/RTIambassadorImplementation.cpp?cvsroot=certi&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/ieee1516-2000/RTIambassadorImplementation.h?cvsroot=certi&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/certi/libRTI/ieee1516-2000/RTIambassador.h?cvsroot=certi&r1=1.1&r2=0
Patches:
Index: RTIambassadorFactory.cpp
===================================================================
RCS file: /sources/certi/certi/libRTI/ieee1516-2000/RTIambassadorFactory.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- RTIambassadorFactory.cpp 3 Mar 2014 16:41:50 -0000 1.1
+++ RTIambassadorFactory.cpp 6 Mar 2014 12:14:10 -0000 1.2
@@ -12,7 +12,7 @@
#endif
#include "PrettyDebug.hh"
-#include "RTIambassador.h"
+#include "RTIambassadorImplementation.h"
#include "M_Classes.hh"
@@ -28,16 +28,16 @@
}
namespace {
- static PrettyDebug D1516("LIBRTI1516", __FILE__);
- static PrettyDebug G1516("GENDOC1516",__FILE__) ;
+static PrettyDebug D1516("LIBRTI1516", __FILE__);
+static PrettyDebug G1516("GENDOC1516",__FILE__) ;
}
std::auto_ptr< rti1516::RTIambassador >
rti1516::RTIambassadorFactory::createRTIambassador(std::vector< std::wstring >
& args)
throw (BadInitializationParameter,
RTIinternalError)
-{
- rti1516::RTI1516ambassador* p_ambassador(new
rti1516::RTI1516ambassador());
+ {
+ certi::RTI1516ambassador* p_ambassador(new certi::RTI1516ambassador());
std::auto_ptr< rti1516::RTIambassador > ap_ambassador(p_ambassador);
@@ -224,6 +224,6 @@
G1516.Out(pdGendoc,"exit RTIambassador::RTIambassador");
return ap_ambassador;
-}
+ }
//} // end namespace rti1516
Index: RTIHandleFactory.h
===================================================================
RCS file: /sources/certi/certi/libRTI/ieee1516-2000/RTIHandleFactory.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- RTIHandleFactory.h 3 Mar 2014 16:41:46 -0000 1.1
+++ RTIHandleFactory.h 6 Mar 2014 12:14:10 -0000 1.2
@@ -30,9 +30,9 @@
#include "certi.hh"
#include "GAV.hh"
#include <RTI/Typedefs.h>
+#include <RTI/Handle.h>
+#include "M_Classes.hh" // for certi:EventRetraction
#include "HandleImplementation.h"
-#include "M_Classes.hh"
-
template<class I>
struct certi_cast
@@ -86,28 +86,27 @@
namespace rti1516
{
+// All of the RTI API's HandleFriend classes are defined
+// by invoking the macro above.
+DEFINE_HANDLE_FRIEND_CLASS(FederateHandle)
+DEFINE_HANDLE_FRIEND_CLASS(ObjectClassHandle)
+DEFINE_HANDLE_FRIEND_CLASS(InteractionClassHandle)
+DEFINE_HANDLE_FRIEND_CLASS(ObjectInstanceHandle)
+DEFINE_HANDLE_FRIEND_CLASS(AttributeHandle)
+DEFINE_HANDLE_FRIEND_CLASS(ParameterHandle)
+DEFINE_HANDLE_FRIEND_CLASS(DimensionHandle)
+//DEFINE_HANDLE_FRIEND_CLASS(MessageRetractionHandle)
+DEFINE_HANDLE_FRIEND_CLASS(RegionHandle)
- // All of the RTI API's HandleFriend classes are defined
- // by invoking the macro above.
- DEFINE_HANDLE_FRIEND_CLASS(FederateHandle)
- DEFINE_HANDLE_FRIEND_CLASS(ObjectClassHandle)
- DEFINE_HANDLE_FRIEND_CLASS(InteractionClassHandle)
- DEFINE_HANDLE_FRIEND_CLASS(ObjectInstanceHandle)
- DEFINE_HANDLE_FRIEND_CLASS(AttributeHandle)
- DEFINE_HANDLE_FRIEND_CLASS(ParameterHandle)
- DEFINE_HANDLE_FRIEND_CLASS(DimensionHandle)
- //DEFINE_HANDLE_FRIEND_CLASS(MessageRetractionHandle)
- DEFINE_HANDLE_FRIEND_CLASS(RegionHandle)
-
- class MessageRetractionHandleFriend {
- public:
+class MessageRetractionHandleFriend {
+public:
static MessageRetractionHandle createRTI1516Handle(const
certi::Handle & certiHandle, uint64_t serialNr);
static MessageRetractionHandle createRTI1516Handle(const
rti1516::VariableLengthData & encodedValue);
static certi::EventRetraction createEventRetraction(const
rti1516::MessageRetractionHandle & messageRetractionHandle);
- private:
+private:
MessageRetractionHandleFriend();
~MessageRetractionHandleFriend();
- };
+};
}
Index: RTIambassador.cpp
===================================================================
RCS file: /sources/certi/certi/libRTI/ieee1516-2000/RTIambassador.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- RTIambassador.cpp 3 Mar 2014 16:41:50 -0000 1.1
+++ RTIambassador.cpp 6 Mar 2014 12:14:10 -0000 1.2
@@ -21,2861 +21,15 @@
//
// ----------------------------------------------------------------------------
-#include "RTIambassador.h"
-#include <RTI/RangeBounds.h>
-
-#ifndef _WIN32
-#include <cstdlib>
-#include <cstring>
-#endif
-
-#include "PrettyDebug.hh"
-
-#include "M_Classes.hh"
-#include "RTIHandleFactory.h"
-#include "RTI1516fedTime.h"
-
-#include <algorithm>
-
-namespace {
-
-static PrettyDebug D("LIBRTI", __FILE__);
-static PrettyDebug G("GENDOC",__FILE__) ;
-
-}
+#include <RTI/RTIambassador.h>
namespace rti1516
{
- /* Deletor Object */
- template <class T>
- struct Deletor {
- void operator() (T* e) {delete e;};
- };
-
- /* Helper functions */
- template<typename T>
- void
- RTI1516ambassador::assignPHVMAndExecuteService(const
rti1516::ParameterHandleValueMap &PHVM, T &req, T &rep) {
-
- req.setParametersSize(PHVM.size());
- req.setValuesSize(PHVM.size());
- uint32_t i = 0;
- for ( rti1516::ParameterHandleValueMap::const_iterator it =
PHVM.begin(); it != PHVM.end(); it++, ++i)
- {
-
req.setParameters(ParameterHandleFriend::toCertiHandle(it->first),i);
- certi::ParameterValue_t paramValue;
- paramValue.resize(it->second.size());
- memcpy(&(paramValue[0]), it->second.data(),
it->second.size());
- req.setValues(paramValue, i);
- }
- privateRefs->executeService(&req, &rep);
- }
-
- template<typename T>
- void
- RTI1516ambassador::assignAHVMAndExecuteService(const
rti1516::AttributeHandleValueMap &AHVM, T &req, T &rep) {
-
- req.setAttributesSize(AHVM.size());
- req.setValuesSize(AHVM.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleValueMap::const_iterator it =
AHVM.begin(); it != AHVM.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(it->first),i);
- certi::AttributeValue_t attrValue;
- attrValue.resize(it->second.size());
- memcpy(&(attrValue[0]), it->second.data(),
it->second.size());
- req.setValues(attrValue, i);
- }
- privateRefs->executeService(&req, &rep);
- }
-
- template<typename T>
- void
- RTI1516ambassador::assignAHSAndExecuteService(const
rti1516::AttributeHandleSet &AHS, T &req, T &rep) {
- req.setAttributesSize(AHS.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
AHS.begin(); it != AHS.end(); it++, ++i)
- {
- certi::AttributeHandle certiHandle =
AttributeHandleFriend::toCertiHandle(*it);
- req.setAttributes(certiHandle,i);
- }
- privateRefs->executeService(&req, &rep);
- }
-
- std::string varLengthDataAsString(VariableLengthData varLengthData) {
- std::string retVal( (char*)varLengthData.data(),
varLengthData.size() );
- return retVal;
- }
-
- certi::TransportType
toCertiTransportationType(rti1516::TransportationType theType) {
- return (theType == rti1516::RELIABLE) ? certi::RELIABLE :
certi::BEST_EFFORT;
- }
- rti1516::TransportationType
toRTI1516TransportationType(certi::TransportType theType) {
- return (theType == certi::RELIABLE) ? rti1516::RELIABLE :
rti1516::BEST_EFFORT;
- }
- certi::OrderType toCertiOrderType(rti1516::OrderType theType) {
- return (theType == rti1516::RECEIVE) ? certi::RECEIVE :
certi::TIMESTAMP;
- }
- rti1516::OrderType toRTI1516OrderType(certi::OrderType theType) {
- return (theType == certi::RECEIVE) ? rti1516::RECEIVE :
rti1516::TIMESTAMP;
- }
- /* end of Helper functions */
-
- RTIambassador::RTIambassador() throw()
- {
- }
-
- RTIambassador::~RTIambassador()
- {
- }
-
-
- RTI1516ambassador::RTI1516ambassador() throw()
- : privateRefs(0)
- {
- }
-
- RTI1516ambassador::~RTI1516ambassador()
- {
- certi::M_Close_Connexion req, rep ;
-
- G.Out(pdGendoc," ====>executeService CLOSE_CONNEXION");
- privateRefs->executeService(&req, &rep);
- // after the response is received, the privateRefs->socketUn
must not be used
-
- delete privateRefs;
- }
-
- //
----------------------------------------------------------------------------
- //! Generic callback evocation (CERTI extension).
- /*! Blocks up to "minimum" seconds until a callback delivery and then
evokes a
- * single callback.
- * @return true if additional callbacks pending, false otherwise
- */
- bool RTI1516ambassador::__tick_kernel(bool multiple, TickTime minimum,
TickTime maximum)
- throw (rti1516::SpecifiedSaveLabelDoesNotExist,
- rti1516::RTIinternalError)
- {
- M_Tick_Request vers_RTI;
- std::auto_ptr<Message> vers_Fed(NULL);
-
- // Request callback(s) from the local RTIA
- vers_RTI.setMultiple(multiple);
- vers_RTI.setMinTickTime(minimum);
- vers_RTI.setMaxTickTime(maximum);
-
- try {
-
vers_RTI.send(privateRefs->socketUn,privateRefs->msgBufSend);
- }
- catch (NetworkError &e) {
- std::stringstream msg;
- msg << "NetworkError in tick() while sending
TICK_REQUEST: " << e._reason;
- std::wstring message(msg.str().begin(),
msg.str().end());
- throw RTIinternalError(message);
- }
-
- // Read response(s) from the local RTIA until
Message::TICK_REQUEST is received.
- while (1) {
- try {
-
vers_Fed.reset(M_Factory::receive(privateRefs->socketUn));
- }
- catch (NetworkError &e) {
- std::stringstream msg;
- msg << "NetworkError in tick() while receiving
response: " << e._reason;
- std::wstring message(msg.str().begin(),
msg.str().end());
- throw RTIinternalError(message);
- }
-
- // If the type is TICK_REQUEST, the __tick_kernel() has
terminated.
- if (vers_Fed->getMessageType() ==
Message::TICK_REQUEST) {
- if (vers_Fed->getExceptionType() !=
e_NO_EXCEPTION) {
- // tick() may only throw exceptions
defined in the HLA standard
- // the RTIA is responsible for sending
'allowed' exceptions only
-
privateRefs->processException(vers_Fed.get());
- }
- return
static_cast<M_Tick_Request*>(vers_Fed.get())->getMultiple();
- }
-
- try {
- // Otherwise, the RTI calls a
FederateAmbassador service.
-
privateRefs->callFederateAmbassador(vers_Fed.get());
- }
- catch (RTIinternalError&) {
- // RTIA awaits TICK_REQUEST_NEXT, terminate the
tick() processing
- privateRefs->sendTickRequestStop();
- // ignore the response and re-throw the
original exception
- throw;
- }
-
- try {
- // Request next callback from the RTIA
- M_Tick_Request_Next tick_next;
- tick_next.send(privateRefs->socketUn,
privateRefs->msgBufSend);
- }
- catch (NetworkError &e) {
- std::stringstream msg;
- msg << "NetworkError in tick() while sending
TICK_REQUEST_NEXT: " << e._reason;
-
- std::wstring message(msg.str().begin(),
msg.str().end());
- throw RTIinternalError(message);
- }
- } // while(1)
- }
-
- // 4.2
- void RTI1516ambassador::createFederationExecution
- (std::wstring const & federationExecutionName,
- std::wstring const & fullPathNameToTheFDDfile,
- std::wstring const & logicalTimeImplementationName)
- throw (FederationExecutionAlreadyExists,
- CouldNotOpenFDD,
- ErrorReadingFDD,
- CouldNotCreateLogicalTimeFactory,
- RTIinternalError)
- {
- /* TODO */
- certi::M_Create_Federation_Execution req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::createFederationExecution");
- std::string
federationExecutionNameAsString(federationExecutionName.begin(),
federationExecutionName.end());
- req.setFederationName(federationExecutionNameAsString);
-
- std::string
fullPathNameToTheFDDfileAsString(fullPathNameToTheFDDfile.begin(),
fullPathNameToTheFDDfile.end());
- req.setFEDid(fullPathNameToTheFDDfileAsString);
-
- /*#ifdef _WIN32
- if(!stricmp(FED,executionName)) {
- #else
- if(!strcasecmp(FED,exeName)) {
- #endif
- }*/
- G.Out(pdGendoc," ====>executeService
CREATE_FEDERATION_EXECUTION");
-
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit
RTI1516ambassador::createFederationExecution");
-
- // TODO What to do with the 'logicalTimeImplementationName'?
Can't find it's use in SISO-STD-004.1-2004
- // Only exists in C++ interface.
- // Ignored for now.
- }
-
- // 4.3
- void RTI1516ambassador::destroyFederationExecution
- (std::wstring const & federationExecutionName)
- throw (FederatesCurrentlyJoined,
- FederationExecutionDoesNotExist,
- RTIinternalError)
- {
- M_Destroy_Federation_Execution req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::destroyFederationExecution");
-
- std::string
federationExecutionNameAsString(federationExecutionName.begin(),
federationExecutionName.end());
- req.setFederationName(federationExecutionNameAsString);
-
- G.Out(pdGendoc," ====>executeService
DESTROY_FEDERATION_EXECUTION");
-
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit
RTI1516ambassador::destroyFederationExecution");
- }
-
- // 4.4
- FederateHandle RTI1516ambassador::joinFederationExecution
- (std::wstring const & federateType,
- std::wstring const & federationExecutionName,
- FederateAmbassador & federateAmbassador)
- throw (FederateAlreadyExecutionMember,
- FederationExecutionDoesNotExist,
- SaveInProgress,
- RestoreInProgress,
- CouldNotCreateLogicalTimeFactory,
- RTIinternalError)
- {
- M_Join_Federation_Execution req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::joinFederationExecution");
-
- if ( &federateType == NULL || federateType.length() <= 0 ) {
- throw RTIinternalError(L"Incorrect or empty federate
name");
- }
- std::string federateTypeAsString(federateType.begin(),
federateType.end());
-
- if ( &federationExecutionName == NULL ||
federationExecutionName.length() <= 0 )
- throw RTIinternalError(L"Incorrect or empty federation
name");
- std::string
federationExecutionNameAsString(federationExecutionName.begin(),
federationExecutionName.end());
-
- privateRefs->fed_amb = &federateAmbassador ;
-
- req.setFederateName(federateTypeAsString);
- req.setFederationName(federationExecutionNameAsString);
- G.Out(pdGendoc," ====>executeService
JOIN_FEDERATION_EXECUTION");
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit
RTI1516ambassador::joinFederationExecution");
- PrettyDebug::setFederateName(
"LibRTI::"+std::string(federateTypeAsString));
-
- certi::FederateHandle certiFederateHandle = rep.getFederate();
- rti1516::FederateHandle rti1516FederateHandle =
rti1516::FederateHandleFriend::createRTI1516Handle(certiFederateHandle);
-
- return rti1516FederateHandle;
- }
-
- // 4.5
- void RTI1516ambassador::resignFederationExecution
- (ResignAction resignAction)
- throw (OwnershipAcquisitionPending,
- FederateOwnsAttributes,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Resign_Federation_Execution req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::resignFederationExecution");
-
//req.setResignAction(static_cast<certi::ResignAction>(resignAction));
-
req.setResignAction(certi::DELETE_OBJECTS_AND_RELEASE_ATTRIBUTES);
- G.Out(pdGendoc," ====>executeService
RESIGN_FEDERATION_EXECUTION");
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit
RTI1516ambassador::resignFederationExecution");
- }
-
- // 4.6
- void RTI1516ambassador::registerFederationSynchronizationPoint
- (std::wstring const & label,
- VariableLengthData const & theUserSuppliedTag)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Register_Federation_Synchronization_Point req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::registerFederationSynchronizationPoint for all federates");
- std::string labelString(label.begin(), label.end());
- req.setLabel(labelString);
- // no federate set
- req.setFederateSetSize(0);
- if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data()
== NULL )
- {
- throw RTIinternalError (L"Calling
registerFederationSynchronizationPoint with Tag NULL");
- }
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
- G.Out(pdGendoc," ====>executeService
REGISTER_FEDERATION_SYNCHRONIZATION_POINT");
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit
RTI1516ambassador::registerFederationSynchronizationPoint for all federates");
- }
-
- void RTI1516ambassador::registerFederationSynchronizationPoint
- (std::wstring const & label,
- VariableLengthData const & theUserSuppliedTag,
- FederateHandleSet const & syncSet)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Register_Federation_Synchronization_Point req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::registerFederationSynchronizationPoint for some federates");
-
- std::string labelString(label.begin(), label.end());
- req.setLabel(labelString);
- if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data()
== NULL )
- {
- throw RTIinternalError (L"Calling
registerFederationSynchronizationPoint with Tag NULL");
- }
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
- // Federate set exists but if size=0 (set empty)
- // We have to send the size even if federate set size is 0
- // (HLA 1.3 compliance to inform ALL federates)
-
- req.setFederateSetSize(syncSet.size());
-
- uint32_t i = 0;
- for ( rti1516::FederateHandleSet::const_iterator it =
syncSet.begin(); it != syncSet.end(); it++, ++i)
- {
-
req.setFederateSet(FederateHandleFriend::toCertiHandle(*it),i);
- }
-
- G.Out(pdGendoc," ====>executeService
REGISTER_FEDERATION_SYNCHRONIZATION_POINT");
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit
RTI1516ambassador::registerFederationSynchronizationPoint for some federates");
- }
-
- // 4.9
- void RTI1516ambassador::synchronizationPointAchieved
- (std::wstring const & label)
- throw (SynchronizationPointLabelNotAnnounced,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Synchronization_Point_Achieved req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::synchronizationPointAchieved");
-
- std::string labelString(label.begin(), label.end());
- req.setLabel(labelString);
-
- G.Out(pdGendoc," ====>executeService
SYNCHRONIZATION_POINT_ACHIEVED");
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit
RTI1516ambassador::synchronizationPointAchieved");
- }
-
- // 4.11
- void RTI1516ambassador::requestFederationSave
- (std::wstring const & label)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Request_Federation_Save req, rep ;
-
- G.Out(pdGendoc,"enter RTI1516ambassador::requestFederationSave
without time");
-
- std::string labelString(label.begin(), label.end());
- req.setLabel(labelString);
- G.Out(pdGendoc," ====>executeService
REQUEST_FEDERATION_SAVE");
-
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit RTI1516ambassador::requestFederationSave
without time");
- }
-
- void RTI1516ambassador::requestFederationSave
- (std::wstring const & label,
- LogicalTime const & theTime)
- throw (LogicalTimeAlreadyPassed,
- InvalidLogicalTime,
- FederateUnableToUseTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Request_Federation_Save req, rep ;
-
- G.Out(pdGendoc,"enter RTI1516ambassador::requestFederationSave
with time");
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
-
- std::string labelString(label.begin(), label.end());
- req.setLabel(labelString);
-
- G.Out(pdGendoc," ====>executeService
REQUEST_FEDERATION_SAVE");
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit RTI1516ambassador::requestFederationSave
with time");
- }
-
- // 4.13
- void RTI1516ambassador::federateSaveBegun ()
- throw (SaveNotInitiated,
- FederateNotExecutionMember,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Federate_Save_Begun req, rep ;
-
- G.Out(pdGendoc,"enter RTI1516ambassador::federateSaveBegun");
-
- G.Out(pdGendoc," ====>executeService FEDERATE_SAVE_BEGUN");
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit RTI1516ambassador::federateSaveBegun");
- }
-
- // 4.14
- void RTI1516ambassador::federateSaveComplete ()
- throw (FederateHasNotBegunSave,
- FederateNotExecutionMember,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Federate_Save_Complete req, rep ;
-
- G.Out(pdGendoc,"enter RTI1516ambassador::federateSaveComplete");
- G.Out(pdGendoc," ====>executeService
FEDERATE_SAVE_COMPLETE");
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit RTI1516ambassador::federateSaveComplete");
- }
-
- void RTI1516ambassador::federateSaveNotComplete()
- throw (FederateHasNotBegunSave,
- FederateNotExecutionMember,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Federate_Save_Not_Complete req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::federateSaveNotComplete");
- G.Out(pdGendoc," ====>executeService
FEDERATE_SAVE_NOT_COMPLETE");
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit
RTI1516ambassador::federateSaveNotComplete");
- }
-
- // 4.16
- void RTI1516ambassador::queryFederationSaveStatus ()
- throw (FederateNotExecutionMember,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 4.18
- void RTI1516ambassador::requestFederationRestore
- (std::wstring const & label)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Request_Federation_Restore req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::requestFederationRestore");
- std::string labelString(label.begin(), label.end());
- req.setLabel(labelString);
- G.Out(pdGendoc," ====>executeService
REQUEST_FEDERATION_RESTORE");
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit
RTI1516ambassador::requestFederationRestore");
- }
-
- // 4.22
- void RTI1516ambassador::federateRestoreComplete ()
- throw (RestoreNotRequested,
- FederateNotExecutionMember,
- SaveInProgress,
- RTIinternalError)
- {
- M_Federate_Restore_Complete req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::federateRestoreComplete");
-
- G.Out(pdGendoc," ====>executeService
FEDERATE_RESTORE_COMPLETE");
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit
RTI1516ambassador::federateRestoreComplete");
- }
-
- void RTI1516ambassador::federateRestoreNotComplete ()
- throw (RestoreNotRequested,
- FederateNotExecutionMember,
- SaveInProgress,
- RTIinternalError)
- {
- M_Federate_Restore_Not_Complete req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::federateRestoreNotComplete");
- G.Out(pdGendoc," ====>executeService
FEDERATE_RESTORE_NOT_COMPLETE");
-
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit
RTI1516ambassador::federateRestoreNotComplete");
- }
-
- // 4.24
- void RTI1516ambassador::queryFederationRestoreStatus ()
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- /////////////////////////////////////
- // Declaration Management Services //
- /////////////////////////////////////
-
- // 5.2
- void RTI1516ambassador::publishObjectClassAttributes
- (ObjectClassHandle theClass,
- rti1516::AttributeHandleSet const & attributeList)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Publish_Object_Class req, rep ;
- G.Out(pdGendoc,"enter RTI1516ambassador::publishObjectClass");
-
- const certi::ObjectClassHandle objectClassHandle =
ObjectClassHandleFriend::toCertiHandle(theClass);
- req.setObjectClass(objectClassHandle);
-
- req.setAttributesSize(attributeList.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
attributeList.begin(); it != attributeList.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
- G.Out(pdGendoc," ====>executeService
PUBLISH_OBJECT_CLASS");
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit RTI1516ambassador::publishObjectClass");
- }
-
- // 5.3
- void RTI1516ambassador::unpublishObjectClass
- (ObjectClassHandle theClass)
- throw (ObjectClassNotDefined,
- OwnershipAcquisitionPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Unpublish_Object_Class req, rep ;
- G.Out(pdGendoc,"enter RTI1516ambassador::unpublishObjectClass");
-
- const certi::ObjectClassHandle objectClassHandle =
ObjectClassHandleFriend::toCertiHandle(theClass);
- req.setObjectClass(objectClassHandle);
- G.Out(pdGendoc," ====>executeService
UNPUBLISH_OBJECT_CLASS");
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit RTI1516ambassador::unpublishObjectClass");
- }
-
- void RTI1516ambassador::unpublishObjectClassAttributes
- (ObjectClassHandle theClass,
- AttributeHandleSet const & attributeList)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- OwnershipAcquisitionPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 5.4
- void RTI1516ambassador::publishInteractionClass
- (InteractionClassHandle theInteraction)
- throw (InteractionClassNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Publish_Interaction_Class req, rep ;
- const certi::InteractionClassHandle classHandle =
InteractionClassHandleFriend::toCertiHandle(theInteraction);
- req.setInteractionClass(classHandle);
- G.Out(pdGendoc," ====>executeService
PUBLISH_INTERACTION_CLASS");
- privateRefs->executeService(&req, &rep);
- }
-
- // 5.5
- void RTI1516ambassador::unpublishInteractionClass
- (InteractionClassHandle theInteraction)
- throw (InteractionClassNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Unpublish_Interaction_Class req, rep ;
- const certi::InteractionClassHandle classHandle =
InteractionClassHandleFriend::toCertiHandle(theInteraction);
- req.setInteractionClass(classHandle);
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 5.6
- void RTI1516ambassador::subscribeObjectClassAttributes
- (ObjectClassHandle theClass,
- AttributeHandleSet const & attributeList,
- bool active)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Subscribe_Object_Class_Attributes req, rep ;
- G.Out(pdGendoc,"enter
RTI1516ambassador::subscribeObjectClassAttributes");
-
- const certi::ObjectClassHandle objectClassHandle =
ObjectClassHandleFriend::toCertiHandle(theClass);
- req.setObjectClass(objectClassHandle);
-
- req.setAttributesSize(attributeList.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
attributeList.begin(); it != attributeList.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
- req.setActive(active);
-
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit
RTI1516ambassador::subscribeObjectClassAttributes");
- }
-
- // 5.7
- void RTI1516ambassador::unsubscribeObjectClass
- (ObjectClassHandle theClass)
- throw (ObjectClassNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Unsubscribe_Object_Class req, rep ;
-
- const certi::ObjectClassHandle objectClassHandle =
ObjectClassHandleFriend::toCertiHandle(theClass);
- req.setObjectClass(objectClassHandle);
-
- privateRefs->executeService(&req, &rep);
- }
-
- void RTI1516ambassador::unsubscribeObjectClassAttributes
- (ObjectClassHandle theClass,
- AttributeHandleSet const & attributeList)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 5.8
- void RTI1516ambassador::subscribeInteractionClass
- (InteractionClassHandle theClass,
- bool active)
- throw (InteractionClassNotDefined,
- FederateServiceInvocationsAreBeingReportedViaMOM,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Subscribe_Interaction_Class req, rep ;
- const certi::InteractionClassHandle classHandle =
InteractionClassHandleFriend::toCertiHandle(theClass);
- req.setInteractionClass(classHandle);
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 5.9
- void RTI1516ambassador::unsubscribeInteractionClass
- (InteractionClassHandle theClass)
- throw (InteractionClassNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Unsubscribe_Interaction_Class req, rep ;
-
- const certi::InteractionClassHandle classHandle =
InteractionClassHandleFriend::toCertiHandle(theClass);
- req.setInteractionClass(classHandle);
-
- privateRefs->executeService(&req, &rep);
- }
-
- ////////////////////////////////
- // Object Management Services //
- ////////////////////////////////
-
- // 6.2
- void RTI1516ambassador::reserveObjectInstanceName
- (std::wstring const & theObjectInstanceName)
- throw (IllegalName,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Reserve_Object_Instance_Name req, rep;
-
- std::string objInstanceName(theObjectInstanceName.begin(),
theObjectInstanceName.end());
- req.setObjectName(objInstanceName);
- privateRefs->executeService(&req, &rep);
- }
-
- // 6.4
- ObjectInstanceHandle RTI1516ambassador::registerObjectInstance
- (ObjectClassHandle theClass)
- throw (ObjectClassNotDefined,
- ObjectClassNotPublished,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Register_Object_Instance req, rep ;
-
-
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(theClass));
- privateRefs->executeService(&req, &rep);
- return
rti1516::ObjectInstanceHandleFriend::createRTI1516Handle(rep.getObject());
- }
-
- ObjectInstanceHandle RTI1516ambassador::registerObjectInstance
- (ObjectClassHandle theClass,
- std::wstring const & theObjectInstanceName)
- throw (ObjectClassNotDefined,
- ObjectClassNotPublished,
- ObjectInstanceNameNotReserved,
- ObjectInstanceNameInUse,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Register_Object_Instance req, rep ;
-
- std::string nameString(theObjectInstanceName.begin(),
theObjectInstanceName.end());
- req.setObjectName(nameString);
-
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(theClass));
- privateRefs->executeService(&req, &rep);
-
- return
rti1516::ObjectInstanceHandleFriend::createRTI1516Handle(rep.getObject());
- }
-
- // 6.6
- void RTI1516ambassador::updateAttributeValues
- (ObjectInstanceHandle theObject,
- AttributeHandleValueMap const & theAttributeValues,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- G.Out(pdGendoc,"enter RTI1516ambassador::updateAttributeValues
without time");
- M_Update_Attribute_Values req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
- if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data()
== NULL)
- {
- throw RTIinternalError(L"Calling updateAttributeValues
with Tag NULL");
- }
-
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
-
- assignAHVMAndExecuteService(theAttributeValues, req, rep);
-
- G.Out(pdGendoc,"exit RTI1516ambassador::updateAttributeValues
without time");
- }
-
- MessageRetractionHandle RTI1516ambassador::updateAttributeValues
- (ObjectInstanceHandle theObject,
- AttributeHandleValueMap const & theAttributeValues,
- VariableLengthData const & theUserSuppliedTag,
- LogicalTime const & theTime)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- InvalidLogicalTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- G.Out(pdGendoc,"enter RTI1516ambassador::updateAttributeValues
with time");
- M_Update_Attribute_Values req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
-
- if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data()
== NULL)
- {
- throw RTIinternalError(L"Calling updateAttributeValues
with Tag NULL");
- }
-
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
-
- assignAHVMAndExecuteService(theAttributeValues, req, rep);
-
- G.Out(pdGendoc,"return
RTI1516ambassador::updateAttributeValues with time");
- certi::FederateHandle certiHandle =
rep.getEventRetraction().getSendingFederate();
- uint64_t serialNum = rep.getEventRetraction().getSN();
- return
rti1516::MessageRetractionHandleFriend::createRTI1516Handle(certiHandle,
serialNum);
- }
-
- // 6.8
- void RTI1516ambassador::sendInteraction
- (InteractionClassHandle theInteraction,
- ParameterHandleValueMap const & theParameterValues,
- VariableLengthData const & theUserSuppliedTag)
- throw (InteractionClassNotPublished,
- InteractionClassNotDefined,
- InteractionParameterNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Send_Interaction req, rep ;
-
- const certi::InteractionClassHandle classHandle =
InteractionClassHandleFriend::toCertiHandle(theInteraction);
- req.setInteractionClass(classHandle);
-
- if (&theUserSuppliedTag == NULL || theUserSuppliedTag.data() ==
NULL )
- {
- throw RTIinternalError (L"Calling sendIntercation with
Tag NULL") ;
- }
-
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
- req.setRegion(0);
-
- assignPHVMAndExecuteService(theParameterValues, req, rep);
- }
-
- MessageRetractionHandle RTI1516ambassador::sendInteraction
- (InteractionClassHandle theInteraction,
- ParameterHandleValueMap const & theParameterValues,
- VariableLengthData const & theUserSuppliedTag,
- LogicalTime const & theTime)
- throw (InteractionClassNotPublished,
- InteractionClassNotDefined,
- InteractionParameterNotDefined,
- InvalidLogicalTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Send_Interaction req, rep ;
-
- const certi::InteractionClassHandle classHandle =
InteractionClassHandleFriend::toCertiHandle(theInteraction);
- req.setInteractionClass(classHandle);
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
-
- if (&theUserSuppliedTag == NULL || theUserSuppliedTag.data() ==
NULL ) {
- throw RTIinternalError(L"Calling sendInteraction with
Tag NULL") ;
- }
-
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
- req.setRegion(0);
-
- assignPHVMAndExecuteService(theParameterValues, req, rep);
-
- certi::FederateHandle certiHandle =
rep.getEventRetraction().getSendingFederate();
- uint64_t serialNr = rep.getEventRetraction().getSN();
- rti1516::MessageRetractionHandle rti1516handle =
MessageRetractionHandleFriend::createRTI1516Handle(certiHandle, serialNr);
-
- return rti1516handle;
- }
-
- // 6.10
- void RTI1516ambassador::deleteObjectInstance
- (ObjectInstanceHandle theObject,
- VariableLengthData const & theUserSuppliedTag)
- throw (DeletePrivilegeNotHeld,
- ObjectInstanceNotKnown,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Delete_Object_Instance req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
- if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data()
== NULL)
- {
- throw RTIinternalError(L"Calling deleteObjectInstance
with Tag NULL") ;
- }
-
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
-
- privateRefs->executeService(&req, &rep);
- }
-
- MessageRetractionHandle RTI1516ambassador::deleteObjectInstance
- (ObjectInstanceHandle theObject,
- VariableLengthData const & theUserSuppliedTag,
- LogicalTime const & theTime)
- throw (DeletePrivilegeNotHeld,
- ObjectInstanceNotKnown,
- InvalidLogicalTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Delete_Object_Instance req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
-
- if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data()
== NULL)
- {
- throw RTIinternalError(L"Calling deleteObjectInstance
with Tag NULL") ;
- }
-
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
-
- privateRefs->executeService(&req, &rep);
-
- certi::FederateHandle certiHandle =
rep.getEventRetraction().getSendingFederate();
- uint64_t serialNum = rep.getEventRetraction().getSN();
- return
rti1516::MessageRetractionHandleFriend::createRTI1516Handle(certiHandle,
serialNum);
- }
-
- // 6.12
- void RTI1516ambassador::localDeleteObjectInstance
- (ObjectInstanceHandle theObject)
- throw (ObjectInstanceNotKnown,
- FederateOwnsAttributes,
- OwnershipAcquisitionPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- throw RTIinternalError(L"unimplemented service
localDeleteObjectInstance");
- M_Local_Delete_Object_Instance req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
- privateRefs->executeService(&req, &rep);
- }
-
- // 6.13
- void RTI1516ambassador::changeAttributeTransportationType
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- TransportationType theType)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Change_Attribute_Transportation_Type req, rep ;
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
- req.setTransportationType(toCertiTransportationType(theType));
-
- req.setAttributesSize(theAttributes.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
- {
-
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
- }
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 6.14
- void RTI1516ambassador::changeInteractionTransportationType
- (InteractionClassHandle theClass,
- TransportationType theType)
- throw (InteractionClassNotDefined,
- InteractionClassNotPublished,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Change_Interaction_Transportation_Type req, rep ;
-
-
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(theClass));
- req.setTransportationType(toCertiTransportationType(theType));
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 6.17
- void RTI1516ambassador::requestAttributeValueUpdate
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Request_Object_Attribute_Value_Update req, rep ;
-
- G.Out(pdGendoc,"enter
RTI1516ambassador::requestObjectAttributeValueUpdate");
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
- size_t attr_num = theAttributes.size();
- req.setAttributesSize( attr_num );
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); i < attr_num; ++it, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
- req.setTag(varLengthDataAsString(theUserSuppliedTag));
-
- privateRefs->executeService(&req, &rep);
- G.Out(pdGendoc,"exit
RTI1516ambassador::requestObjectAttributeValueUpdate");
- }
-
- void RTI1516ambassador::requestAttributeValueUpdate
- (ObjectClassHandle theClass,
- AttributeHandleSet const & theAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Request_Class_Attribute_Value_Update req, rep ;
- G.Out(pdGendoc,"enter
RTI1516ambassador::requestClassAttributeValueUpdate");
-
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(theClass));
-
- assignAHSAndExecuteService(theAttributes, req, rep);
-
- G.Out(pdGendoc,"exit
RTI1516ambassador::requestClassAttributeValueUpdate");
- }
-
- ///////////////////////////////////
- // Ownership Management Services //
- ///////////////////////////////////
- // 7.2
- void RTI1516ambassador::unconditionalAttributeOwnershipDivestiture
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Unconditional_Attribute_Ownership_Divestiture req, rep ;
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
- req.setAttributesSize(theAttributes.size());
- uint32_t i=0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 7.3
- void RTI1516ambassador::negotiatedAttributeOwnershipDivestiture
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- AttributeAlreadyBeingDivested,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Negotiated_Attribute_Ownership_Divestiture req, rep ;
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
- if (&theUserSuppliedTag == NULL || theUserSuppliedTag.data() ==
NULL) {
- throw RTIinternalError (L"Calling
negotiatedAttributeOwnershipDivestiture with Tag NULL") ;
- }
- req.setTag(rti1516::varLengthDataAsString(theUserSuppliedTag));
-
- req.setAttributesSize(theAttributes.size());
- uint32_t i=0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 7.6
- void RTI1516ambassador::confirmDivestiture
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & confirmedAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- AttributeDivestitureWasNotRequested,
- NoAcquisitionPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 7.8
- void RTI1516ambassador::attributeOwnershipAcquisition
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & desiredAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- ObjectClassNotPublished,
- AttributeNotDefined,
- AttributeNotPublished,
- FederateOwnsAttributes,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Attribute_Ownership_Acquisition req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
- if (&theUserSuppliedTag == NULL || theUserSuppliedTag.data() ==
NULL )
- {
- throw RTIinternalError (L"Calling
attributeOwnershipAcquisition with Tag NULL") ;
- }
- req.setTag(rti1516::varLengthDataAsString(theUserSuppliedTag));
-
- req.setAttributesSize(desiredAttributes.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
desiredAttributes.begin(); it != desiredAttributes.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 7.9
- void RTI1516ambassador::attributeOwnershipAcquisitionIfAvailable
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & desiredAttributes)
- throw (ObjectInstanceNotKnown,
- ObjectClassNotPublished,
- AttributeNotDefined,
- AttributeNotPublished,
- FederateOwnsAttributes,
- AttributeAlreadyBeingAcquired,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Attribute_Ownership_Acquisition_If_Available req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
- req.setAttributesSize(desiredAttributes.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
desiredAttributes.begin(); it != desiredAttributes.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 7.12 (in RTI1.3 this function is called:
AttributeOwnershipReleaseResponse)
- void RTI1516ambassador::attributeOwnershipDivestitureIfWanted
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- AttributeHandleSet & theDivestedAttributes) // filled by RTI
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Attribute_Ownership_Release_Response req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
- assignAHSAndExecuteService(theAttributes, req, rep);
-
- if (rep.getExceptionType() == e_NO_EXCEPTION) {
- theDivestedAttributes.clear();
- for (uint32_t i=0;i<rep.getAttributesSize();++i) {
-
theDivestedAttributes.insert(rti1516::AttributeHandleFriend::createRTI1516Handle(rep.getAttributes()[i]));
- }
- }
-
- }
-
- // 7.13
- void RTI1516ambassador::cancelNegotiatedAttributeOwnershipDivestiture
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- AttributeDivestitureWasNotRequested,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Cancel_Negotiated_Attribute_Ownership_Divestiture req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
- req.setAttributesSize(theAttributes.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 7.14
- void RTI1516ambassador::cancelAttributeOwnershipAcquisition
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeAlreadyOwned,
- AttributeAcquisitionWasNotRequested,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Cancel_Attribute_Ownership_Acquisition req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
- req.setAttributesSize(theAttributes.size());
- uint32_t i = 0;
- for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
- {
-
req.setAttributes(AttributeHandleFriend::toCertiHandle(*it),i);
- }
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 7.16
- void RTI1516ambassador::queryAttributeOwnership
- (ObjectInstanceHandle theObject,
- AttributeHandle theAttribute)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Query_Attribute_Ownership req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
req.setAttribute(rti1516::AttributeHandleFriend::toCertiHandle(theAttribute));
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 7.18
- bool RTI1516ambassador::isAttributeOwnedByFederate
- (ObjectInstanceHandle theObject,
- AttributeHandle theAttribute)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Is_Attribute_Owned_By_Federate req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
-
req.setAttribute(rti1516::AttributeHandleFriend::toCertiHandle(theAttribute));
-
- privateRefs->executeService(&req, &rep);
-
- return (rep.getTag() == "RTI_TRUE") ? true : false;
- }
-
- //////////////////////////////
- // Time Management Services //
- //////////////////////////////
-
- // 8.2
- void RTI1516ambassador::enableTimeRegulation
- (LogicalTimeInterval const & theLookahead)
- throw (TimeRegulationAlreadyEnabled,
- InvalidLookahead,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Enable_Time_Regulation req, rep ;
-
-
//req.setDate(certi_cast<RTIfedTime>()(theFederateTime).getTime()); //JRE:
DATE IS NOT USED!
-
- //JRE: is dit wel goed?
- //JvY: TODO Controleren of dit blijft werken met andere
tijdsimplementaties
- union ud {
- double dv;
- uint64_t uv;
- } value;
-#ifdef HOST_IS_BIG_ENDIAN
- memcpy(&(value.uv), theLookahead.encode().data(),
sizeof(double));
-#else
- value.uv =
CERTI_DECODE_DOUBLE_FROM_UINT64BE(theLookahead.encode().data());
-#endif
- double lookAheadTime = value.dv;
- req.setLookahead(lookAheadTime);
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.4
- void RTI1516ambassador::disableTimeRegulation ()
- throw (TimeRegulationIsNotEnabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Disable_Time_Regulation req, rep ;
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.5
- void RTI1516ambassador::enableTimeConstrained ()
- throw (TimeConstrainedAlreadyEnabled,
- InTimeAdvancingState,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Enable_Time_Constrained req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.7
- void RTI1516ambassador::disableTimeConstrained ()
- throw (TimeConstrainedIsNotEnabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Disable_Time_Constrained req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.8
- void RTI1516ambassador::timeAdvanceRequest
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Time_Advance_Request req, rep ;
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.9
- void RTI1516ambassador::timeAdvanceRequestAvailable
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Time_Advance_Request_Available req, rep ;
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.10
- void RTI1516ambassador::nextMessageRequest
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Next_Event_Request req, rep ;
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.11
- void RTI1516ambassador::nextMessageRequestAvailable
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Next_Event_Request_Available req, rep ;
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.12
- void RTI1516ambassador::flushQueueRequest
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- // JvY: Implementation copied from previous CERTI
implementation, including immediate throw.
- throw RTIinternalError(L"Unimplemented Service
flushQueueRequest");
- M_Flush_Queue_Request req, rep ;
-
- certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
- req.setDate(certiFedTime);
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.14
- void RTI1516ambassador::enableAsynchronousDelivery ()
- throw (AsynchronousDeliveryAlreadyEnabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- // throw AsynchronousDeliveryAlreadyEnabled("Default value (non
HLA)");
-
- M_Enable_Asynchronous_Delivery req, rep ;
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.15
- void RTI1516ambassador::disableAsynchronousDelivery ()
- throw (AsynchronousDeliveryAlreadyDisabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Disable_Asynchronous_Delivery req, rep ;
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.16
- bool RTI1516ambassador::queryGALT (LogicalTime & theTime)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- //TODO JRE: goed testen! Is GALT wel precies het zelfde als
LBTS?
- M_Query_Lbts req, rep ;
-
- privateRefs->executeService(&req, &rep);
-
- //TODO JRE: goed testen of deze return value wel klopt!
- certi::FederationTime fedTime = rep.getDate();
- if (fedTime.getTime() == 0.0) {
- return false;
- }
-
- // JvY: TODO Controleren of dit blijft werken met andere
tijdsimplementaties
- certi_cast<RTI1516fedTime>()(theTime) = rep.getDate().getTime();
-
- return true;
- }
-
- // 8.17
- void RTI1516ambassador::queryLogicalTime (LogicalTime & theTime)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Query_Federate_Time req, rep ;
-
- privateRefs->executeService(&req, &rep);
-
- // JvY: TODO Controleren of dit blijft werken met andere
tijdsimplementaties
- certi_cast<RTI1516fedTime>()(theTime) = rep.getDate().getTime();
- }
-
- // 8.18
- bool RTI1516ambassador::queryLITS (LogicalTime & theTime)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- //TODO JRE: goed testen! Is LITS wel precies het zelfde als
QueryMinNextEventTime?
- M_Query_Min_Next_Event_Time req, rep ;
-
- privateRefs->executeService(&req, &rep);
-
- //TODO JRE: goed testen of deze return value wel klopt!
- certi::FederationTime fedTime = rep.getDate();
- if (fedTime.getTime() == 0.0) {
- return false;
- }
- // JvY: TODO Controleren of dit blijft werken met andere
tijdsimplementaties
- certi_cast<RTI1516fedTime>()(theTime) = rep.getDate().getTime();
-
- return true;
- }
-
- // 8.19
- void RTI1516ambassador::modifyLookahead
- (LogicalTimeInterval const & theLookahead)
- throw (TimeRegulationIsNotEnabled,
- InvalidLookahead,
- InTimeAdvancingState,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 8.20
- void RTI1516ambassador::queryLookahead (LogicalTimeInterval & interval)
- throw (TimeRegulationIsNotEnabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 8.21
- void RTI1516ambassador::retract
- (MessageRetractionHandle theHandle)
- throw (InvalidRetractionHandle,
- TimeRegulationIsNotEnabled,
- MessageCanNoLongerBeRetracted,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- throw RTIinternalError(L"Unimplemented Service retract");
- M_Retract req, rep ;
-
- certi::EventRetraction event =
rti1516::MessageRetractionHandleFriend::createEventRetraction(theHandle);
- req.setEventRetraction(event);
-
- privateRefs->executeService(&req, &rep);
- }
-
- // 8.23
- void RTI1516ambassador::changeAttributeOrderType
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- OrderType theType)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Change_Attribute_Order_Type req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
- req.setOrder(rti1516::toCertiOrderType(theType));
-
- assignAHSAndExecuteService(theAttributes, req, rep);
- }
-
- // 8.24
- void RTI1516ambassador::changeInteractionOrderType
- (InteractionClassHandle theClass,
- OrderType theType)
- throw (InteractionClassNotDefined,
- InteractionClassNotPublished,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Change_Interaction_Order_Type req, rep ;
-
-
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(theClass));
- req.setOrder(rti1516::toCertiOrderType(theType));
-
- privateRefs->executeService(&req, &rep);
- }
-
- //////////////////////////////////
- // Data Distribution Management //
- //////////////////////////////////
-
- // 9.2
- RegionHandle RTI1516ambassador::createRegion
- (DimensionHandleSet const & theDimensions)
- throw (InvalidDimensionHandle,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.3
- void RTI1516ambassador::commitRegionModifications
- (RegionHandleSet const & theRegionHandleSet)
- throw (InvalidRegion,
- RegionNotCreatedByThisFederate,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.4
- void RTI1516ambassador::deleteRegion
- (RegionHandle theRegion)
- throw (InvalidRegion,
- RegionNotCreatedByThisFederate,
- RegionInUseForUpdateOrSubscription,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.5
- ObjectInstanceHandle
RTI1516ambassador::registerObjectInstanceWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector)
- throw (ObjectClassNotDefined,
- ObjectClassNotPublished,
- AttributeNotDefined,
- AttributeNotPublished,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- ObjectInstanceHandle
RTI1516ambassador::registerObjectInstanceWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector,
- std::wstring const & theObjectInstanceName)
- throw (ObjectClassNotDefined,
- ObjectClassNotPublished,
- AttributeNotDefined,
- AttributeNotPublished,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- ObjectInstanceNameNotReserved,
- ObjectInstanceNameInUse,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.6
- void RTI1516ambassador::associateRegionsForUpdates
- (ObjectInstanceHandle theObject,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.7
- void RTI1516ambassador::unassociateRegionsForUpdates
- (ObjectInstanceHandle theObject,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.8
- void RTI1516ambassador::subscribeObjectClassAttributesWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector,
- bool active)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.9
- void RTI1516ambassador::unsubscribeObjectClassAttributesWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.10
- void RTI1516ambassador::subscribeInteractionClassWithRegions
- (InteractionClassHandle theClass,
- RegionHandleSet const & theRegionHandleSet,
- bool active)
- throw (InteractionClassNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateServiceInvocationsAreBeingReportedViaMOM,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.11
- void RTI1516ambassador::unsubscribeInteractionClassWithRegions
- (InteractionClassHandle theClass,
- RegionHandleSet const & theRegionHandleSet)
- throw (InteractionClassNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.12
- void RTI1516ambassador::sendInteractionWithRegions
- (InteractionClassHandle theInteraction,
- ParameterHandleValueMap const & theParameterValues,
- RegionHandleSet const & theRegionHandleSet,
- VariableLengthData const & theUserSuppliedTag)
- throw (InteractionClassNotDefined,
- InteractionClassNotPublished,
- InteractionParameterNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- MessageRetractionHandle RTI1516ambassador::sendInteractionWithRegions
- (InteractionClassHandle theInteraction,
- ParameterHandleValueMap const & theParameterValues,
- RegionHandleSet const & theRegionHandleSet,
- VariableLengthData const & theUserSuppliedTag,
- LogicalTime const & theTime)
- throw (InteractionClassNotDefined,
- InteractionClassNotPublished,
- InteractionParameterNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- InvalidLogicalTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 9.13
- void RTI1516ambassador::requestAttributeValueUpdateWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const & theSet,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- //////////////////////////
- // RTI Support Services //
- //////////////////////////
-
- // 10.2
- ObjectClassHandle RTI1516ambassador::getObjectClassHandle
- (std::wstring const & theName)
- throw (NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Object_Class_Handle req, rep ;
-
- G.Out(pdGendoc,"enter RTI1516ambassador::getObjectClassHandle");
-
- std::string nameAsString(theName.begin(), theName.end());
- req.setClassName(nameAsString);
- privateRefs->executeService(&req, &rep);
-
- G.Out(pdGendoc,"exit RTI1516ambassador::getObjectClassHandle");
- rti1516::ObjectClassHandle rti1516Handle =
ObjectClassHandleFriend::createRTI1516Handle(rep.getObjectClass());
-
- return rti1516Handle;
- }
-
- // 10.3
- std::wstring RTI1516ambassador::getObjectClassName
- (ObjectClassHandle theHandle)
- throw (InvalidObjectClassHandle,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Object_Class_Name req, rep ;
-
- certi::ObjectClassHandle certiHandle =
ObjectClassHandleFriend::toCertiHandle(theHandle);
- req.setObjectClass(certiHandle);
- try {
- privateRefs->executeService(&req, &rep);
- } catch (rti1516::ObjectClassNotDefined &e)
- {
- throw rti1516::InvalidObjectClassHandle(e.what());
- }
-
- std::string nameString = rep.getClassName();
- std::wstring nameWString(nameString.begin(), nameString.end());
-
- //return hla_strdup(rep.getClassName());
- return nameWString;
- }
-
- // 10.4
- AttributeHandle RTI1516ambassador::getAttributeHandle
- (ObjectClassHandle whichClass,
- std::wstring const & theAttributeName)
- throw (InvalidObjectClassHandle,
- NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- G.Out(pdGendoc,"enter
RTI::RTI1516ambassador::getAttributeHandle");
- M_Get_Attribute_Handle req, rep ;
-
- std::string nameAsString(theAttributeName.begin(),
theAttributeName.end());
- req.setAttributeName(nameAsString);
-
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(whichClass));
-
- try {
- privateRefs->executeService(&req, &rep);
- } catch (rti1516::ObjectClassNotDefined &e)
- {
- if ( ! whichClass.isValid() ) {
- throw
rti1516::InvalidObjectClassHandle(e.what());
- } else {
- throw rti1516::NameNotFound(e.what());
- }
- }
-
-
-
- G.Out(pdGendoc,"exit
RTI::RTI1516ambassador::getAttributeHandle");
- return
rti1516::AttributeHandleFriend::createRTI1516Handle(rep.getAttribute());
- }
-
- // 10.5
- std::wstring RTI1516ambassador::getAttributeName
- (ObjectClassHandle whichClass,
- AttributeHandle theHandle)
- throw (InvalidObjectClassHandle,
- InvalidAttributeHandle,
- AttributeNotDefined,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Attribute_Name req, rep ;
-
-
req.setAttribute(rti1516::AttributeHandleFriend::toCertiHandle(theHandle));
-
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(whichClass));
- try {
- privateRefs->executeService(&req, &rep);
- } catch (rti1516::ObjectClassNotDefined &e)
- {
- if ( !whichClass.isValid() )
- {
- throw
rti1516::InvalidObjectClassHandle(e.what());
- } else
- {
- throw;
- }
- } catch ( rti1516::AttributeNotDefined &e)
- {
- if (! theHandle.isValid() )
- {
- throw rti1516::InvalidAttributeHandle(e.what());
- } else
- {
- throw;
- }
- }
-
- //return hla_strdup(rep.getAttributeName());
-
- std::string nameString = rep.getAttributeName();
- std::wstring nameWString(nameString.begin(), nameString.end());
-
- return nameWString;
- }
-
- // 10.6
- InteractionClassHandle RTI1516ambassador::getInteractionClassHandle
- (std::wstring const & theName)
- throw (NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Interaction_Class_Handle req, rep ;
- std::string nameString(theName.begin(), theName.end());
- req.setClassName(nameString);
-
- privateRefs->executeService(&req, &rep);
-
- return
rti1516::InteractionClassHandleFriend::createRTI1516Handle(rep.getInteractionClass());
- }
-
- // 10.7
- std::wstring RTI1516ambassador::getInteractionClassName
- (InteractionClassHandle theHandle)
- throw (InvalidInteractionClassHandle,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Interaction_Class_Name req, rep ;
-
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(theHandle));
- try {
- privateRefs->executeService(&req, &rep);
- } catch (rti1516::InteractionClassNotDefined &e)
- {
- if ( !theHandle.isValid() )
- {
- throw
rti1516::InvalidInteractionClassHandle(e.what());
- } else
- {
- throw;
- }
- }
-
- //return hla_strdup(rep.getClassName());
- std::string nameString = rep.getClassName();
- std::wstring nameWString(nameString.begin(), nameString.end());
-
- return nameWString;
- }
-
- // 10.8
- ParameterHandle RTI1516ambassador::getParameterHandle
- (InteractionClassHandle whichClass,
- std::wstring const & theName)
- throw (InvalidInteractionClassHandle,
- NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Parameter_Handle req, rep ;
- std::string nameString(theName.begin(), theName.end());
- req.setParameterName(nameString);
-
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(whichClass));
-
- try {
- privateRefs->executeService(&req, &rep);
- } catch (rti1516::InteractionClassNotDefined &e)
- {
- if ( !whichClass.isValid() )
- {
- throw
rti1516::InvalidInteractionClassHandle(e.what());
- } else
- {
- throw;
- }
- }
-
- return
rti1516::ParameterHandleFriend::createRTI1516Handle(rep.getParameter());
- }
-
- // 10.9
- std::wstring RTI1516ambassador::getParameterName
- (InteractionClassHandle whichClass,
- ParameterHandle theHandle)
- throw (InvalidInteractionClassHandle,
- InvalidParameterHandle,
- InteractionParameterNotDefined,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Parameter_Name req, rep ;
-
-
req.setParameter(rti1516::ParameterHandleFriend::toCertiHandle(theHandle));
-
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(whichClass));
-
- try {
- privateRefs->executeService(&req, &rep);
- } catch (rti1516::InteractionClassNotDefined &e)
- {
- if ( !whichClass.isValid() )
- {
- throw
rti1516::InvalidInteractionClassHandle(e.what());
- } else
- {
- throw;
- }
- }
-
- //return hla_strdup(rep.getParameterName());
- std::string nameString = rep.getParameterName();
- std::wstring nameWString(nameString.begin(), nameString.end());
-
- return nameWString;
- }
-
- // 10.10
- ObjectInstanceHandle RTI1516ambassador::getObjectInstanceHandle
- (std::wstring const & theName)
- throw (ObjectInstanceNotKnown,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Object_Instance_Handle req, rep ;
- std::string nameString(theName.begin(), theName.end());
- req.setObjectInstanceName(nameString);
-
- privateRefs->executeService(&req, &rep);
- return
rti1516::ObjectInstanceHandleFriend::createRTI1516Handle(rep.getObject());
- }
-
- // 10.11
- std::wstring RTI1516ambassador::getObjectInstanceName
- (ObjectInstanceHandle theHandle)
- throw (ObjectInstanceNotKnown,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Object_Instance_Name req, rep ;
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theHandle));
- privateRefs->executeService(&req, &rep);
-
- //return hla_strdup(rep.getObjectInstanceName());
- std::string nameString = rep.getObjectInstanceName();
- std::wstring nameWString(nameString.begin(), nameString.end());
-
- return nameWString;
- }
-
- // 10.12
- DimensionHandle RTI1516ambassador::getDimensionHandle
- (std::wstring const & theName)
- throw (NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Dimension_Handle req, rep ;
-
- std::string nameString(theName.begin(), theName.end());
- req.setDimensionName(nameString);
- //req.setSpace(space); //SPACE NIET NODIG IN 1516
STANDAARD???
- privateRefs->executeService(&req, &rep);
- return
rti1516::DimensionHandleFriend::createRTI1516Handle(rep.getDimension());
- }
-
- // 10.13
- std::wstring RTI1516ambassador::getDimensionName
- (DimensionHandle theHandle)
- throw (InvalidDimensionHandle,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Dimension_Name req, rep ;
-
-
req.setDimension(rti1516::DimensionHandleFriend::toCertiHandle(theHandle));
- //req.setSpace(space);
- privateRefs->executeService(&req, &rep);
- //return hla_strdup(rep.getDimensionName());
- std::string nameString = rep.getDimensionName();
- std::wstring nameWString(nameString.begin(), nameString.end());
-
- return nameWString;
- }
-
- // 10.14
- unsigned long RTI1516ambassador::getDimensionUpperBound
- (DimensionHandle theHandle)
- throw (InvalidDimensionHandle,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 10.15
- DimensionHandleSet
RTI1516ambassador::getAvailableDimensionsForClassAttribute
- (ObjectClassHandle theClass,
- AttributeHandle theHandle)
- throw (InvalidObjectClassHandle,
- InvalidAttributeHandle,
- AttributeNotDefined,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Attribute_Space_Handle req, rep ;
-
-
req.setAttribute(rti1516::AttributeHandleFriend::toCertiHandle(theHandle));
-
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(theClass));
- privateRefs->executeService(&req, &rep);
-
- //JRE TODO: Use space handle to to get the address@hidden
- //return rep.getSpace();
- DimensionHandleSet invalidSet;
- return invalidSet;
- }
-
- // 10.16
- ObjectClassHandle RTI1516ambassador::getKnownObjectClassHandle
- (ObjectInstanceHandle theObject)
- throw (ObjectInstanceNotKnown,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Object_Class req, rep ;
-
-
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
- privateRefs->executeService(&req, &rep);
- return
rti1516::ObjectClassHandleFriend::createRTI1516Handle(rep.getObjectClass());
- }
-
- // 10.17
- DimensionHandleSet
RTI1516ambassador::getAvailableDimensionsForInteractionClass
- (InteractionClassHandle theClass)
- throw (InvalidInteractionClassHandle,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Interaction_Space_Handle req, rep ;
-
-
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(theClass));
- this->privateRefs->executeService(&req, &rep);
-
- //JRE TODO: Use space handle to to get the address@hidden
- //return rep.getSpace();
- DimensionHandleSet invalidSet;
- return invalidSet;
- }
-
- // 10.18
- TransportationType RTI1516ambassador::getTransportationType
- (std::wstring const & transportationName)
- throw (InvalidTransportationName,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Transportation_Handle req, rep ;
- std::string nameString(transportationName.begin(),
transportationName.end());
- req.setTransportationName(nameString);
- privateRefs->executeService(&req, &rep);
-
- return
rti1516::toRTI1516TransportationType(rep.getTransportation());
- }
-
- // 10.19
- std::wstring RTI1516ambassador::getTransportationName
- (TransportationType transportationType)
- throw (InvalidTransportationType,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Transportation_Name req, rep ;
-
-
req.setTransportation(rti1516::toCertiTransportationType(transportationType));
- privateRefs->executeService(&req, &rep);
-
- //return hla_strdup(rep.getTransportationName());
- std::string nameString = rep.getTransportationName();
- std::wstring nameWString(nameString.begin(), nameString.end());
-
- return nameWString;
- }
-
- // 10.20
- OrderType RTI1516ambassador::getOrderType
- (std::wstring const & orderName)
- throw (InvalidOrderName,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Ordering_Handle req, rep ;
-
- std::string nameAsString(orderName.begin(), orderName.end());
- req.setOrderingName(nameAsString);
- privateRefs->executeService(&req, &rep);
-
- return rti1516::toRTI1516OrderType(rep.getOrdering());
- }
-
- // 10.21
- std::wstring RTI1516ambassador::getOrderName
- (OrderType orderType)
- throw (InvalidOrderType,
- FederateNotExecutionMember,
- RTIinternalError)
- {
- M_Get_Ordering_Name req, rep ;
-
- req.setOrdering(rti1516::toCertiOrderType(orderType));
- privateRefs->executeService(&req, &rep);
-
- //return hla_strdup(rep.getOrderingName());
- std::string nameString = rep.getOrderingName();
- std::wstring nameWString(nameString.begin(), nameString.end());
-
- return nameWString;
- }
-
- // 10.22
- /**
- * Sets the ClassRelevanceAdvisory (CRA) switch to true. The switch
- * state is hold on the RTIG side. That's why the message
- * ENABLE_CLASS_RELEVANCE_ADVISORY_SWITCH
- * is transmitted to RTIA. RTIA transmits the message towards RTIG.
- *
- * By default, the CRA switch is true. This causes a delivery of the
- * federate service startRegistrationForObjectClass to a publisher
- * if there are any new subscribers for the federates published object
- * classes. If there are no more subscribers a publisher gets the
- * federate service stopRegistrationForObjectClass.
- *
- * By disabling the CRA switch the federate is no longer informed by
- * subscriptions to its published object classes, i.e. the federate
- * services startRegistrationForObjectClass and
- * stopRegistrationForObjectClass respectively are not invoked.
- * @see disableClassRelevanceAdvisorySwitch()
- */
- void RTI1516ambassador::enableObjectClassRelevanceAdvisorySwitch ()
- throw (ObjectClassRelevanceAdvisorySwitchIsOn,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Enable_Class_Relevance_Advisory_Switch req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 10.23
- /**
- * Sets the ClassRelevanceAdvisory (CRA) switch to false. The switch
- * state is hold on the RTIG side. That's why the message
- * DISABLE_CLASS_RELEVANCE_ADVISORY_SWITCH
- * is transmitted to RTIA. RTIA transmits the message towards RTIG.
- *
- * By default, the CRA switch is true. This causes a delivery of the
- * federate service startRegistrationForObjectClass to a publisher
- * if there are any new subscribers for the federates published object
- * classes. If there are no more subscribers a publisher gets the
- * federate service stopRegistrationForObjectClass.
- * @see enableClassRelevanceAdvisorySwitch()
- *
- * By disabling the CRA switch the federate is no longer informed by
- * subscriptions to its published object classes, i.e. the federate
- * services startRegistrationForObjectClass and
- * stopRegistrationForObjectClass respectively are not invoked.
- */
- void RTI1516ambassador::disableObjectClassRelevanceAdvisorySwitch ()
- throw (ObjectClassRelevanceAdvisorySwitchIsOff,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Disable_Class_Relevance_Advisory_Switch req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 10.24
- /**
- * Sets the AttributeRelevanceAdvisory (ARA) switch to true. The switch
- * state is hold on the RTIG side. That's why the message
- * ENABLE_ATTRIBUTE_RELEVANCE_ADVISORY_SWITCH
- * is transmitted to RTIA. RTIA transmits the message towards RTIG.
- *
- * By default, the ARA switch is false. When enabling the ARA switch
- * the federate is informed by the federate service
- * turnUpdatesOnForObjectInstance of new object instances within remote
- * federates actively subscribed to its published attributes. If there
- * are no active subscribers for a set of instance-attributes the
federate
- * receives the federate service turnUpdatesOffForObjectInstance.
- *
- * By disabling the ARA switch the federate is no longer informed by
- * subscriptions to its published attributes, i.e. the federate
- * services turnUpdatesOnForObjectInstance and
- * turnUpdatesOffForObjectInstance respectively are not invoked.
- * @see disableAttributeRelevanceAdvisorySwitch()
- */
- void RTI1516ambassador::enableAttributeRelevanceAdvisorySwitch ()
- throw (AttributeRelevanceAdvisorySwitchIsOn,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Enable_Attribute_Relevance_Advisory_Switch req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 10.25
- /**
- * Sets the AttributeRelevanceAdvisory (ARA) switch to false. The
switch
- * state is hold on the RTIG side. That's why the message
- * DISABLE_ATTRIBUTE_RELEVANCE_ADVISORY_SWITCH
- * is transmitted to RTIA. RTIA transmits the message towards RTIG.
- *
- * By default, the ARA switch is false. When enabling the ARA switch
- * the federate is informed by the federate service
- * turnUpdatesOnForObjectInstance of new object instances within remote
- * federates actively subscribed to its published attributes. If there
- * are no active subscribers for a set of instance-attributes the
federate
- * receives the federate service turnUpdatesOffForObjectInstance.
- * @see enableAttributeRelevanceAdvisorySwitch()
- *
- * By disabling the ARA switch the federate is no longer informed by
- * subscriptions to its published attributes, i.e. the federate
- * services turnUpdatesOnForObjectInstance and
- * turnUpdatesOffForObjectInstance respectively are not invoked.
- */
- void RTI1516ambassador::disableAttributeRelevanceAdvisorySwitch ()
- throw (AttributeRelevanceAdvisorySwitchIsOff,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Disable_Attribute_Relevance_Advisory_Switch req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 10.26
- /**
- * Sets the AttributeScopeAdvisory (ASA) switch to true. The switch
state
- * is hold on the RTIG side. That's why the message
- * ENABLE_ATTRIBUTE_SCOPE_ADVISORY_SWITCH
- * is transmitted to RTIA. RTIA transmits the message towards RTIG.
- *
- * By default, the ASA switch is false. When enabling the ASA switch
- * the federate is informed by the federate services
- * attributesInScope and attributesOutScope respectively of discovered
- * or registrated but not owned attribute-instances intersecting or
- * leaving its subscription regions.
- *
- * By disabling the ASA switch the federate is no longer informed of
- * changes in attribute-instance scope, i.e. the federate
- * services attributesInScope and attributesOutScope respectively are
- * not invoked.
- * @see disableAttributeScopeAdvisorySwitch()
- */
- void RTI1516ambassador::enableAttributeScopeAdvisorySwitch ()
- throw (AttributeScopeAdvisorySwitchIsOn,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Enable_Attribute_Scope_Advisory_Switch req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 10.27
- /**
- * Sets the AttributeScopeAdvisory (ASA) switch to false. The switch
state
- * is hold on the RTIG side. That's why the message
- * DISABLE_ATTRIBUTE_SCOPE_ADVISORY_SWITCH
- * is transmitted to RTIA. RTIA transmits the message towards RTIG.
- *
- * By default, the ASA switch is false. When enabling the ASA switch
- * the federate is informed by the federate services
- * attributesInScope and attributesOutScope respectively of discovered
- * or registrated but not owned attribute-instances intersecting or
- * leaving its subscription regions.
- * @see enableAttributeScopeAdvisorySwitch()
- *
- * By disabling the ASA switch the federate is no longer informed of
- * changes in attribute-instance scope, i.e. the federate
- * services attributesInScope and attributesOutScope respectively are
- * not invoked.
- */
- void RTI1516ambassador::disableAttributeScopeAdvisorySwitch ()
- throw (AttributeScopeAdvisorySwitchIsOff,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Disable_Attribute_Scope_Advisory_Switch req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 10.28
- /**
- * Sets the InteractionRelevanceAdvisory (IRA) switch to true. The
switch
- * state is hold on the RTIG side. That's why the message
- * ENABLE_INTERACTION_RELEVANCE_ADVISORY_SWITCH
- * is transmitted to RTIA. RTIA transmits the message towards RTIG.
- *
- * By default, the IRA switch is true. This causes a delivery of the
- * federate service turnInteractionsOn to a publisher if there are
- * any new subscribers for the federates published interaction
- * classes. If there are no more subscribers a publisher gets the
- * federate service turnInteractionsOff().
- *
- * By disabling the IRA switch the federate is no longer informed by
- * subscriptions to its published interaction classes, i.e. the
federate
- * services turnInteractionsOn and turnInteractionsOff respectively are
- * not invoked.
- * @see disableInteractionRelevanceAdvisorySwitch()
- */
- void RTI1516ambassador::enableInteractionRelevanceAdvisorySwitch ()
- throw (InteractionRelevanceAdvisorySwitchIsOn,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Enable_Interaction_Relevance_Advisory_Switch req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 10.29
- /**
- * Sets the InteractionRelevanceAdvisory (IRA) switch to false. The
switch
- * state is hold on the RTIG side. That's why the message
- * DISABLE_INTERACTION_RELEVANCE_ADVISORY_SWITCH
- * is transmitted to RTIA. RTIA transmits the message towards RTIG.
- *
- * By default, the IRA switch is true. This causes a delivery of the
- * federate service turnInteractionsOn to a publisher if there are
- * any new subscribers for the federates published interaction
- * classes. If there are no more subscribers a publisher gets the
- * federate service turnInteractionsOff().
- * @see enableInteractionRelevanceAdvisorySwitch()
- *
- * By disabling the IRA switch the federate is no longer informed by
- * subscriptions to its published interaction classes, i.e. the
federate
- * services turnInteractionsOn and turnInteractionsOff respectively are
- * not invoked.
- */
- void RTI1516ambassador::disableInteractionRelevanceAdvisorySwitch ()
- throw (InteractionRelevanceAdvisorySwitchIsOff,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- M_Disable_Interaction_Relevance_Advisory_Switch req, rep ;
- privateRefs->executeService(&req, &rep);
- }
-
- // 10.30
-
- DimensionHandleSet RTI1516ambassador::getDimensionHandleSet
- (RegionHandle theRegionHandle)
- throw (InvalidRegion,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 10.31
-
- RangeBounds RTI1516ambassador::getRangeBounds
- (RegionHandle theRegionHandle,
- DimensionHandle theDimensionHandle)
- throw (InvalidRegion,
- RegionDoesNotContainSpecifiedDimension,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 10.32
- void RTI1516ambassador::setRangeBounds
- (RegionHandle theRegionHandle,
- DimensionHandle theDimensionHandle,
- RangeBounds const & theRangeBounds)
- throw (InvalidRegion,
- RegionNotCreatedByThisFederate,
- RegionDoesNotContainSpecifiedDimension,
- InvalidRangeBound,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 10.33
- unsigned long RTI1516ambassador::normalizeFederateHandle
- (FederateHandle theFederateHandle)
- throw (FederateNotExecutionMember,
- InvalidFederateHandle,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 10.34
- unsigned long RTI1516ambassador::normalizeServiceGroup
- (ServiceGroupIndicator theServiceGroup)
- throw (FederateNotExecutionMember,
- InvalidServiceGroup,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 10.37
- bool RTI1516ambassador::evokeCallback(double
approximateMinimumTimeInSeconds)
- throw (FederateNotExecutionMember,
- RTIinternalError)
- {
- return __tick_kernel(false, approximateMinimumTimeInSeconds,
approximateMinimumTimeInSeconds);
- }
-
- // 10.38
- bool RTI1516ambassador::evokeMultipleCallbacks(double
approximateMinimumTimeInSeconds,
- double approximateMaximumTimeInSeconds)
- throw (FederateNotExecutionMember,
- RTIinternalError)
- {
- return __tick_kernel(true, approximateMinimumTimeInSeconds,
approximateMaximumTimeInSeconds);
- }
-
- // 10.39
- void RTI1516ambassador::enableCallbacks ()
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- // 10.40
- void RTI1516ambassador::disableCallbacks ()
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError)
- {
- /* TODO */
- throw RTIinternalError(L"Not yet implemented");
- }
-
- FederateHandle RTI1516ambassador::decodeFederateHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::FederateHandleFriend::createRTI1516Handle(encodedValue);
- }
-
- ObjectClassHandle RTI1516ambassador::decodeObjectClassHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::ObjectClassHandleFriend::createRTI1516Handle(encodedValue);
- }
-
- InteractionClassHandle RTI1516ambassador::decodeInteractionClassHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::InteractionClassHandleFriend::createRTI1516Handle(encodedValue);
- }
-
- ObjectInstanceHandle RTI1516ambassador::decodeObjectInstanceHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::ObjectInstanceHandleFriend::createRTI1516Handle(encodedValue);
- }
-
- AttributeHandle RTI1516ambassador::decodeAttributeHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::AttributeHandleFriend::createRTI1516Handle(encodedValue);
- }
-
- ParameterHandle RTI1516ambassador::decodeParameterHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::ParameterHandleFriend::createRTI1516Handle(encodedValue);
- }
-
- DimensionHandle RTI1516ambassador::decodeDimensionHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::DimensionHandleFriend::createRTI1516Handle(encodedValue);
- }
-
- MessageRetractionHandle
RTI1516ambassador::decodeMessageRetractionHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::MessageRetractionHandleFriend::createRTI1516Handle(encodedValue);
- }
-
- RegionHandle RTI1516ambassador::decodeRegionHandle(
- VariableLengthData const & encodedValue) const
- {
- return
rti1516::RegionHandleFriend::createRTI1516Handle(encodedValue);
- }
-
-
-
-
+RTIambassador::RTIambassador() throw()
+{
+}
+RTIambassador::~RTIambassador()
+{
+}
} // end namespace rti1516
Index: CMakeLists.txt
===================================================================
RCS file: /sources/certi/certi/libRTI/ieee1516-2000/CMakeLists.txt,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- CMakeLists.txt 5 Mar 2014 10:15:56 -0000 1.3
+++ CMakeLists.txt 6 Mar 2014 12:14:10 -0000 1.4
@@ -47,7 +47,8 @@
RTIvariableLengthData.cpp
RTIvariableLengthDataImplementation.h
RTIambassador.cpp
- RTIambassador.h
+ RTIambassadorImplementation.cpp
+ RTIambassadorImplementation.h
RTIambPrivateRefs.cpp
RTIambPrivateRefs.h
Handle.cpp
Index: RTIambassadorImplementation.cpp
===================================================================
RCS file: RTIambassadorImplementation.cpp
diff -N RTIambassadorImplementation.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ RTIambassadorImplementation.cpp 6 Mar 2014 12:14:10 -0000 1.1
@@ -0,0 +1,2872 @@
+// ----------------------------------------------------------------------------
+// CERTI - HLA RunTime Infrastructure
+// Copyright (C) 2002-2014 ONERA
+//
+// This file is part of CERTI-libRTI
+//
+// CERTI-libRTI is free software ; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation ; either version 2 of
+// the License, or (at your option) any later version.
+//
+// CERTI-libRTI is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY ; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this program ; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA
+//
+// ----------------------------------------------------------------------------
+
+#include "RTIambassadorImplementation.h"
+#include <RTI/RangeBounds.h>
+
+#ifndef _WIN32
+#include <cstdlib>
+#include <cstring>
+#endif
+
+#include "PrettyDebug.hh"
+
+#include "M_Classes.hh"
+#include "RTIHandleFactory.h"
+#include "RTI1516fedTime.h"
+
+#include <algorithm>
+
+namespace {
+
+static PrettyDebug D("LIBRTI", __FILE__);
+static PrettyDebug G("GENDOC",__FILE__) ;
+
+}
+
+namespace certi
+{
+/* Deletor Object */
+template <class T>
+struct Deletor {
+ void operator() (T* e) {delete e;};
+};
+
+/* Helper functions */
+template<typename T>
+void
+RTI1516ambassador::assignPHVMAndExecuteService(const
rti1516::ParameterHandleValueMap &PHVM, T &req, T &rep) {
+
+ req.setParametersSize(PHVM.size());
+ req.setValuesSize(PHVM.size());
+ uint32_t i = 0;
+ for ( rti1516::ParameterHandleValueMap::const_iterator it = PHVM.begin();
it != PHVM.end(); it++, ++i)
+ {
+
req.setParameters(rti1516::ParameterHandleFriend::toCertiHandle(it->first),i);
+ certi::ParameterValue_t paramValue;
+ paramValue.resize(it->second.size());
+ memcpy(&(paramValue[0]), it->second.data(), it->second.size());
+ req.setValues(paramValue, i);
+ }
+ privateRefs->executeService(&req, &rep);
+}
+
+template<typename T>
+void
+RTI1516ambassador::assignAHVMAndExecuteService(const
rti1516::AttributeHandleValueMap &AHVM, T &req, T &rep) {
+
+ req.setAttributesSize(AHVM.size());
+ req.setValuesSize(AHVM.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleValueMap::const_iterator it = AHVM.begin();
it != AHVM.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(it->first),i);
+ certi::AttributeValue_t attrValue;
+ attrValue.resize(it->second.size());
+ memcpy(&(attrValue[0]), it->second.data(), it->second.size());
+ req.setValues(attrValue, i);
+ }
+ privateRefs->executeService(&req, &rep);
+}
+
+template<typename T>
+void
+RTI1516ambassador::assignAHSAndExecuteService(const
rti1516::AttributeHandleSet &AHS, T &req, T &rep) {
+ req.setAttributesSize(AHS.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it = AHS.begin(); it !=
AHS.end(); it++, ++i)
+ {
+ certi::AttributeHandle certiHandle =
rti1516::AttributeHandleFriend::toCertiHandle(*it);
+ req.setAttributes(certiHandle,i);
+ }
+ privateRefs->executeService(&req, &rep);
+}
+
+std::string varLengthDataAsString(rti1516::VariableLengthData varLengthData) {
+ std::string retVal( (char*)varLengthData.data(), varLengthData.size() );
+ return retVal;
+}
+
+certi::TransportType toCertiTransportationType(rti1516::TransportationType
theType) {
+ return (theType == rti1516::RELIABLE) ? certi::RELIABLE :
certi::BEST_EFFORT;
+}
+rti1516::TransportationType toRTI1516TransportationType(certi::TransportType
theType) {
+ return (theType == certi::RELIABLE) ? rti1516::RELIABLE :
rti1516::BEST_EFFORT;
+}
+certi::OrderType toCertiOrderType(rti1516::OrderType theType) {
+ return (theType == rti1516::RECEIVE) ? certi::RECEIVE : certi::TIMESTAMP;
+}
+rti1516::OrderType toRTI1516OrderType(certi::OrderType theType) {
+ return (theType == certi::RECEIVE) ? rti1516::RECEIVE : rti1516::TIMESTAMP;
+}
+/* end of Helper functions */
+
+
+RTI1516ambassador::RTI1516ambassador() throw()
+ : privateRefs(0)
+{
+}
+
+RTI1516ambassador::~RTI1516ambassador()
+{
+ certi::M_Close_Connexion req, rep ;
+
+ G.Out(pdGendoc," ====>executeService CLOSE_CONNEXION");
+ privateRefs->executeService(&req, &rep);
+ // after the response is received, the privateRefs->socketUn must not be
used
+
+ delete privateRefs;
+}
+
+// ----------------------------------------------------------------------------
+//! Generic callback evocation (CERTI extension).
+/*! Blocks up to "minimum" seconds until a callback delivery and then evokes a
+ * single callback.
+ * @return true if additional callbacks pending, false otherwise
+ */
+bool RTI1516ambassador::__tick_kernel(bool multiple, TickTime minimum,
TickTime maximum)
+throw (rti1516::SpecifiedSaveLabelDoesNotExist,
+ rti1516::RTIinternalError)
+ {
+ M_Tick_Request vers_RTI;
+ std::auto_ptr<Message> vers_Fed(NULL);
+
+ // Request callback(s) from the local RTIA
+ vers_RTI.setMultiple(multiple);
+ vers_RTI.setMinTickTime(minimum);
+ vers_RTI.setMaxTickTime(maximum);
+
+ try {
+ vers_RTI.send(privateRefs->socketUn,privateRefs->msgBufSend);
+ }
+ catch (NetworkError &e) {
+ std::stringstream msg;
+ msg << "NetworkError in tick() while sending TICK_REQUEST: " <<
e._reason;
+ std::wstring message(msg.str().begin(), msg.str().end());
+ throw rti1516::RTIinternalError(message);
+ }
+
+ // Read response(s) from the local RTIA until Message::TICK_REQUEST is
received.
+ while (1) {
+ try {
+ vers_Fed.reset(M_Factory::receive(privateRefs->socketUn));
+ }
+ catch (NetworkError &e) {
+ std::stringstream msg;
+ msg << "NetworkError in tick() while receiving response: " <<
e._reason;
+ std::wstring message(msg.str().begin(), msg.str().end());
+ throw rti1516::RTIinternalError(message);
+ }
+
+ // If the type is TICK_REQUEST, the __tick_kernel() has terminated.
+ if (vers_Fed->getMessageType() == Message::TICK_REQUEST) {
+ if (vers_Fed->getExceptionType() != e_NO_EXCEPTION) {
+ // tick() may only throw exceptions defined in the HLA standard
+ // the RTIA is responsible for sending 'allowed' exceptions
only
+ privateRefs->processException(vers_Fed.get());
+ }
+ return static_cast<M_Tick_Request*>(vers_Fed.get())->getMultiple();
+ }
+
+ try {
+ // Otherwise, the RTI calls a FederateAmbassador service.
+ privateRefs->callFederateAmbassador(vers_Fed.get());
+ }
+ catch (RTIinternalError&) {
+ // RTIA awaits TICK_REQUEST_NEXT, terminate the tick() processing
+ privateRefs->sendTickRequestStop();
+ // ignore the response and re-throw the original exception
+ throw;
+ }
+
+ try {
+ // Request next callback from the RTIA
+ M_Tick_Request_Next tick_next;
+ tick_next.send(privateRefs->socketUn, privateRefs->msgBufSend);
+ }
+ catch (NetworkError &e) {
+ std::stringstream msg;
+ msg << "NetworkError in tick() while sending TICK_REQUEST_NEXT: "
<< e._reason;
+
+ std::wstring message(msg.str().begin(), msg.str().end());
+ throw rti1516::RTIinternalError(message);
+ }
+ } // while(1)
+ // should never be reached, this is there for calming down static code
analysis
+ return false;
+}
+
+// 4.2
+void RTI1516ambassador::createFederationExecution
+(std::wstring const & federationExecutionName,
+ std::wstring const & fullPathNameToTheFDDfile,
+ std::wstring const & LogicalTimeImplementationName)
+throw (rti1516::FederationExecutionAlreadyExists,
+ rti1516::CouldNotOpenFDD,
+ rti1516::ErrorReadingFDD,
+ rti1516::CouldNotCreateLogicalTimeFactory,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ certi::M_Create_Federation_Execution req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::createFederationExecution");
+ std::string
federationExecutionNameAsString(federationExecutionName.begin(),
federationExecutionName.end());
+ req.setFederationName(federationExecutionNameAsString);
+
+ std::string
fullPathNameToTheFDDfileAsString(fullPathNameToTheFDDfile.begin(),
fullPathNameToTheFDDfile.end());
+ req.setFEDid(fullPathNameToTheFDDfileAsString);
+
+ /*#ifdef _WIN32
+ if(!stricmp(FED,executionName)) {
+ #else
+ if(!strcasecmp(FED,exeName)) {
+ #endif
+ }*/
+ G.Out(pdGendoc," ====>executeService
CREATE_FEDERATION_EXECUTION");
+
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::createFederationExecution");
+
+ // TODO What to do with the 'logicalTimeImplementationName'? Can't find
it's use in SISO-STD-004.1-2004
+ // Only exists in C++ interface.
+ // Ignored for now.
+ }
+
+// 4.3
+void RTI1516ambassador::destroyFederationExecution
+(std::wstring const & federationExecutionName)
+throw (rti1516::FederatesCurrentlyJoined,
+ rti1516::FederationExecutionDoesNotExist,
+ rti1516::RTIinternalError)
+ {
+ M_Destroy_Federation_Execution req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::destroyFederationExecution");
+
+ std::string
federationExecutionNameAsString(federationExecutionName.begin(),
federationExecutionName.end());
+ req.setFederationName(federationExecutionNameAsString);
+
+ G.Out(pdGendoc," ====>executeService DESTROY_FEDERATION_EXECUTION");
+
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::destroyFederationExecution");
+ }
+
+// 4.4
+rti1516::FederateHandle RTI1516ambassador::joinFederationExecution
+(std::wstring const & federateType,
+ std::wstring const & federationExecutionName,
+ rti1516::FederateAmbassador & federateAmbassador)
+throw (rti1516::FederateAlreadyExecutionMember,
+ rti1516::FederationExecutionDoesNotExist,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::CouldNotCreateLogicalTimeFactory,
+ rti1516::RTIinternalError)
+ {
+ M_Join_Federation_Execution req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::joinFederationExecution");
+
+ if ( &federateType == NULL || federateType.length() <= 0 ) {
+ throw rti1516::RTIinternalError(L"Incorrect or empty federate name");
+ }
+ std::string federateTypeAsString(federateType.begin(), federateType.end());
+
+ if ( &federationExecutionName == NULL || federationExecutionName.length()
<= 0 )
+ throw rti1516::RTIinternalError(L"Incorrect or empty federation name");
+ std::string
federationExecutionNameAsString(federationExecutionName.begin(),
federationExecutionName.end());
+
+ privateRefs->fed_amb = &federateAmbassador ;
+
+ req.setFederateName(federateTypeAsString);
+ req.setFederationName(federationExecutionNameAsString);
+ G.Out(pdGendoc," ====>executeService JOIN_FEDERATION_EXECUTION");
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::joinFederationExecution");
+ PrettyDebug::setFederateName(
"LibRTI::"+std::string(federateTypeAsString));
+
+ certi::FederateHandle certiFederateHandle = rep.getFederate();
+ rti1516::FederateHandle rti1516FederateHandle =
rti1516::FederateHandleFriend::createRTI1516Handle(certiFederateHandle);
+
+ return rti1516FederateHandle;
+ }
+
+// 4.5
+void RTI1516ambassador::resignFederationExecution
+(rti1516::ResignAction resignAction)
+throw (rti1516::OwnershipAcquisitionPending,
+ rti1516::FederateOwnsAttributes,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Resign_Federation_Execution req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::resignFederationExecution");
+ //req.setResignAction(static_cast<certi::ResignAction>(resignAction));
+ req.setResignAction(certi::DELETE_OBJECTS_AND_RELEASE_ATTRIBUTES);
+ G.Out(pdGendoc," ====>executeService RESIGN_FEDERATION_EXECUTION");
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::resignFederationExecution");
+ }
+
+// 4.6
+void RTI1516ambassador::registerFederationSynchronizationPoint
+(std::wstring const & label,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Register_Federation_Synchronization_Point req, rep ;
+
+ G.Out(pdGendoc,"enter
RTI1516ambassador::registerFederationSynchronizationPoint for all federates");
+ std::string labelString(label.begin(), label.end());
+ req.setLabel(labelString);
+ // no federate set
+ req.setFederateSetSize(0);
+ if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL )
+ {
+ throw rti1516::RTIinternalError (L"Calling
registerFederationSynchronizationPoint with Tag NULL");
+ }
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+ G.Out(pdGendoc," ====>executeService
REGISTER_FEDERATION_SYNCHRONIZATION_POINT");
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit
RTI1516ambassador::registerFederationSynchronizationPoint for all federates");
+ }
+
+void RTI1516ambassador::registerFederationSynchronizationPoint
+(std::wstring const & label,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::FederateHandleSet const & syncSet)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Register_Federation_Synchronization_Point req, rep ;
+
+ G.Out(pdGendoc,"enter
RTI1516ambassador::registerFederationSynchronizationPoint for some federates");
+
+ std::string labelString(label.begin(), label.end());
+ req.setLabel(labelString);
+ if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL )
+ {
+ throw rti1516::RTIinternalError (L"Calling
registerFederationSynchronizationPoint with Tag NULL");
+ }
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+ // Federate set exists but if size=0 (set empty)
+ // We have to send the size even if federate set size is 0
+ // (HLA 1.3 compliance to inform ALL federates)
+
+ req.setFederateSetSize(syncSet.size());
+
+ uint32_t i = 0;
+ for ( rti1516::FederateHandleSet::const_iterator it = syncSet.begin(); it
!= syncSet.end(); it++, ++i)
+ {
+
req.setFederateSet(rti1516::FederateHandleFriend::toCertiHandle(*it),i);
+ }
+
+ G.Out(pdGendoc," ====>executeService
REGISTER_FEDERATION_SYNCHRONIZATION_POINT");
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit
RTI1516ambassador::registerFederationSynchronizationPoint for some federates");
+ }
+
+// 4.9
+void RTI1516ambassador::synchronizationPointAchieved
+(std::wstring const & label)
+throw (rti1516::SynchronizationPointLabelNotAnnounced,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Synchronization_Point_Achieved req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::synchronizationPointAchieved");
+
+ std::string labelString(label.begin(), label.end());
+ req.setLabel(labelString);
+
+ G.Out(pdGendoc," ====>executeService
SYNCHRONIZATION_POINT_ACHIEVED");
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::synchronizationPointAchieved");
+ }
+
+// 4.11
+void RTI1516ambassador::requestFederationSave
+(std::wstring const & label)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Request_Federation_Save req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::requestFederationSave without
time");
+
+ std::string labelString(label.begin(), label.end());
+ req.setLabel(labelString);
+ G.Out(pdGendoc," ====>executeService REQUEST_FEDERATION_SAVE");
+
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::requestFederationSave without
time");
+ }
+
+void RTI1516ambassador::requestFederationSave
+(std::wstring const & label,
+ rti1516::LogicalTime const & theTime)
+throw (rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateUnableToUseTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Request_Federation_Save req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::requestFederationSave with time");
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+
+ std::string labelString(label.begin(), label.end());
+ req.setLabel(labelString);
+
+ G.Out(pdGendoc," ====>executeService REQUEST_FEDERATION_SAVE");
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::requestFederationSave with time");
+ }
+
+// 4.13
+void RTI1516ambassador::federateSaveBegun ()
+throw (rti1516::SaveNotInitiated,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Federate_Save_Begun req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::federateSaveBegun");
+
+ G.Out(pdGendoc," ====>executeService FEDERATE_SAVE_BEGUN");
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::federateSaveBegun");
+ }
+
+// 4.14
+void RTI1516ambassador::federateSaveComplete ()
+throw (rti1516::FederateHasNotBegunSave,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Federate_Save_Complete req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::federateSaveComplete");
+ G.Out(pdGendoc," ====>executeService FEDERATE_SAVE_COMPLETE");
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::federateSaveComplete");
+ }
+
+void RTI1516ambassador::federateSaveNotComplete()
+throw (rti1516::FederateHasNotBegunSave,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Federate_Save_Not_Complete req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::federateSaveNotComplete");
+ G.Out(pdGendoc," ====>executeService FEDERATE_SAVE_NOT_COMPLETE");
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::federateSaveNotComplete");
+ }
+
+// 4.16
+void RTI1516ambassador::queryFederationSaveStatus ()
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 4.18
+void RTI1516ambassador::requestFederationRestore
+(std::wstring const & label)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Request_Federation_Restore req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::requestFederationRestore");
+ std::string labelString(label.begin(), label.end());
+ req.setLabel(labelString);
+ G.Out(pdGendoc," ====>executeService REQUEST_FEDERATION_RESTORE");
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::requestFederationRestore");
+ }
+
+// 4.22
+void RTI1516ambassador::federateRestoreComplete ()
+throw (rti1516::RestoreNotRequested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Federate_Restore_Complete req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::federateRestoreComplete");
+
+ G.Out(pdGendoc," ====>executeService FEDERATE_RESTORE_COMPLETE");
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::federateRestoreComplete");
+ }
+
+void RTI1516ambassador::federateRestoreNotComplete ()
+throw (rti1516::RestoreNotRequested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Federate_Restore_Not_Complete req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::federateRestoreNotComplete");
+ G.Out(pdGendoc," ====>executeService FEDERATE_RESTORE_NOT_COMPLETE");
+
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::federateRestoreNotComplete");
+ }
+
+// 4.24
+void RTI1516ambassador::queryFederationRestoreStatus ()
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+/////////////////////////////////////
+// Declaration Management Services //
+/////////////////////////////////////
+
+// 5.2
+void RTI1516ambassador::publishObjectClassAttributes
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & attributeList)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Publish_Object_Class req, rep ;
+ G.Out(pdGendoc,"enter RTI1516ambassador::publishObjectClass");
+
+ const certi::ObjectClassHandle objectClassHandle =
rti1516::ObjectClassHandleFriend::toCertiHandle(theClass);
+ req.setObjectClass(objectClassHandle);
+
+ req.setAttributesSize(attributeList.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
attributeList.begin(); it != attributeList.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+ G.Out(pdGendoc," ====>executeService PUBLISH_OBJECT_CLASS");
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::publishObjectClass");
+ }
+
+// 5.3
+void RTI1516ambassador::unpublishObjectClass
+(rti1516::ObjectClassHandle theClass)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::OwnershipAcquisitionPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Unpublish_Object_Class req, rep ;
+ G.Out(pdGendoc,"enter RTI1516ambassador::unpublishObjectClass");
+
+ const certi::ObjectClassHandle objectClassHandle =
rti1516::ObjectClassHandleFriend::toCertiHandle(theClass);
+ req.setObjectClass(objectClassHandle);
+ G.Out(pdGendoc," ====>executeService UNPUBLISH_OBJECT_CLASS");
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::unpublishObjectClass");
+ }
+
+void RTI1516ambassador::unpublishObjectClassAttributes
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & attributeList)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::OwnershipAcquisitionPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 5.4
+void RTI1516ambassador::publishInteractionClass
+(rti1516::InteractionClassHandle theInteraction)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Publish_Interaction_Class req, rep ;
+ const certi::InteractionClassHandle classHandle =
rti1516::InteractionClassHandleFriend::toCertiHandle(theInteraction);
+ req.setInteractionClass(classHandle);
+ G.Out(pdGendoc," ====>executeService PUBLISH_INTERACTION_CLASS");
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 5.5
+void RTI1516ambassador::unpublishInteractionClass
+(rti1516::InteractionClassHandle theInteraction)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Unpublish_Interaction_Class req, rep ;
+ const certi::InteractionClassHandle classHandle =
rti1516::InteractionClassHandleFriend::toCertiHandle(theInteraction);
+ req.setInteractionClass(classHandle);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 5.6
+void RTI1516ambassador::subscribeObjectClassAttributes
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & attributeList,
+ bool active)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Subscribe_Object_Class_Attributes req, rep ;
+ G.Out(pdGendoc,"enter RTI1516ambassador::subscribeObjectClassAttributes");
+
+ const certi::ObjectClassHandle objectClassHandle =
rti1516::ObjectClassHandleFriend::toCertiHandle(theClass);
+ req.setObjectClass(objectClassHandle);
+
+ req.setAttributesSize(attributeList.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
attributeList.begin(); it != attributeList.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+ req.setActive(active);
+
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit RTI1516ambassador::subscribeObjectClassAttributes");
+ }
+
+// 5.7
+void RTI1516ambassador::unsubscribeObjectClass
+(rti1516::ObjectClassHandle theClass)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Unsubscribe_Object_Class req, rep ;
+
+ const certi::ObjectClassHandle objectClassHandle =
rti1516::ObjectClassHandleFriend::toCertiHandle(theClass);
+ req.setObjectClass(objectClassHandle);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+void RTI1516ambassador::unsubscribeObjectClassAttributes
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & attributeList)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 5.8
+void RTI1516ambassador::subscribeInteractionClass
+(rti1516::InteractionClassHandle theClass,
+ bool active)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::FederateServiceInvocationsAreBeingReportedViaMOM,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Subscribe_Interaction_Class req, rep ;
+ const certi::InteractionClassHandle classHandle =
rti1516::InteractionClassHandleFriend::toCertiHandle(theClass);
+ req.setInteractionClass(classHandle);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 5.9
+void RTI1516ambassador::unsubscribeInteractionClass
+(rti1516::InteractionClassHandle theClass)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Unsubscribe_Interaction_Class req, rep ;
+
+ const certi::InteractionClassHandle classHandle =
rti1516::InteractionClassHandleFriend::toCertiHandle(theClass);
+ req.setInteractionClass(classHandle);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+////////////////////////////////
+// Object Management Services //
+////////////////////////////////
+
+// 6.2
+void RTI1516ambassador::reserveObjectInstanceName
+(std::wstring const & theObjectInstanceName)
+throw (rti1516::IllegalName,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Reserve_Object_Instance_Name req, rep;
+
+ std::string objInstanceName(theObjectInstanceName.begin(),
theObjectInstanceName.end());
+ req.setObjectName(objInstanceName);
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 6.4
+rti1516::ObjectInstanceHandle RTI1516ambassador::registerObjectInstance
+(rti1516::ObjectClassHandle theClass)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::ObjectClassNotPublished,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Register_Object_Instance req, rep ;
+
+
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(theClass));
+ privateRefs->executeService(&req, &rep);
+ return
rti1516::ObjectInstanceHandleFriend::createRTI1516Handle(rep.getObject());
+ }
+
+rti1516::ObjectInstanceHandle RTI1516ambassador::registerObjectInstance
+(rti1516::ObjectClassHandle theClass,
+ std::wstring const & theObjectInstanceName)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::ObjectClassNotPublished,
+ rti1516::ObjectInstanceNameNotReserved,
+ rti1516::ObjectInstanceNameInUse,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Register_Object_Instance req, rep ;
+
+ std::string nameString(theObjectInstanceName.begin(),
theObjectInstanceName.end());
+ req.setObjectName(nameString);
+
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(theClass));
+ privateRefs->executeService(&req, &rep);
+
+ return
rti1516::ObjectInstanceHandleFriend::createRTI1516Handle(rep.getObject());
+ }
+
+// 6.6
+void RTI1516ambassador::updateAttributeValues
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleValueMap const & theAttributeValues,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ G.Out(pdGendoc,"enter RTI1516ambassador::updateAttributeValues without
time");
+ M_Update_Attribute_Values req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+ if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL)
+ {
+ throw rti1516::RTIinternalError(L"Calling updateAttributeValues with
Tag NULL");
+ }
+
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+
+ assignAHVMAndExecuteService(theAttributeValues, req, rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::updateAttributeValues without
time");
+ }
+
+rti1516::MessageRetractionHandle RTI1516ambassador::updateAttributeValues
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleValueMap const & theAttributeValues,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::LogicalTime const & theTime)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ G.Out(pdGendoc,"enter RTI1516ambassador::updateAttributeValues with time");
+ M_Update_Attribute_Values req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+
+ if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL)
+ {
+ throw rti1516::RTIinternalError(L"Calling updateAttributeValues with
Tag NULL");
+ }
+
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+
+ assignAHVMAndExecuteService(theAttributeValues, req, rep);
+
+ G.Out(pdGendoc,"return RTI1516ambassador::updateAttributeValues with
time");
+ certi::FederateHandle certiHandle =
rep.getEventRetraction().getSendingFederate();
+ uint64_t serialNum = rep.getEventRetraction().getSN();
+ return
rti1516::MessageRetractionHandleFriend::createRTI1516Handle(certiHandle,
serialNum);
+ }
+
+// 6.8
+void RTI1516ambassador::sendInteraction
+(rti1516::InteractionClassHandle theInteraction,
+ rti1516::ParameterHandleValueMap const & theParameterValues,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::InteractionClassNotPublished,
+ rti1516::InteractionClassNotDefined,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Send_Interaction req, rep ;
+
+ const certi::InteractionClassHandle classHandle =
rti1516::InteractionClassHandleFriend::toCertiHandle(theInteraction);
+ req.setInteractionClass(classHandle);
+
+ if (&theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL )
+ {
+ throw rti1516::RTIinternalError (L"Calling sendIntercation with Tag
NULL") ;
+ }
+
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+ req.setRegion(0);
+
+ assignPHVMAndExecuteService(theParameterValues, req, rep);
+ }
+
+rti1516::MessageRetractionHandle RTI1516ambassador::sendInteraction
+(rti1516::InteractionClassHandle theInteraction,
+ rti1516::ParameterHandleValueMap const & theParameterValues,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::LogicalTime const & theTime)
+throw (rti1516::InteractionClassNotPublished,
+ rti1516::InteractionClassNotDefined,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Send_Interaction req, rep ;
+
+ const certi::InteractionClassHandle classHandle =
rti1516::InteractionClassHandleFriend::toCertiHandle(theInteraction);
+ req.setInteractionClass(classHandle);
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+
+ if (&theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL ) {
+ throw rti1516::RTIinternalError(L"Calling sendInteraction with Tag
NULL") ;
+ }
+
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+ req.setRegion(0);
+
+ assignPHVMAndExecuteService(theParameterValues, req, rep);
+
+ certi::FederateHandle certiHandle =
rep.getEventRetraction().getSendingFederate();
+ uint64_t serialNr = rep.getEventRetraction().getSN();
+ rti1516::MessageRetractionHandle rti1516handle =
rti1516::MessageRetractionHandleFriend::createRTI1516Handle(certiHandle,
serialNr);
+
+ return rti1516handle;
+ }
+
+// 6.10
+void RTI1516ambassador::deleteObjectInstance
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::DeletePrivilegeNotHeld,
+ rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Delete_Object_Instance req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+ if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL)
+ {
+ throw rti1516::RTIinternalError(L"Calling deleteObjectInstance with
Tag NULL") ;
+ }
+
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+rti1516::MessageRetractionHandle RTI1516ambassador::deleteObjectInstance
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::LogicalTime const & theTime)
+throw (rti1516::DeletePrivilegeNotHeld,
+ rti1516::ObjectInstanceNotKnown,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Delete_Object_Instance req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+
+ if ( &theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL)
+ {
+ throw rti1516::RTIinternalError(L"Calling deleteObjectInstance with
Tag NULL") ;
+ }
+
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+
+ privateRefs->executeService(&req, &rep);
+
+ certi::FederateHandle certiHandle =
rep.getEventRetraction().getSendingFederate();
+ uint64_t serialNum = rep.getEventRetraction().getSN();
+ return
rti1516::MessageRetractionHandleFriend::createRTI1516Handle(certiHandle,
serialNum);
+ }
+
+// 6.12
+void RTI1516ambassador::localDeleteObjectInstance
+(rti1516::ObjectInstanceHandle theObject)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateOwnsAttributes,
+ rti1516::OwnershipAcquisitionPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ throw rti1516::RTIinternalError(L"unimplemented service
localDeleteObjectInstance");
+ M_Local_Delete_Object_Instance req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 6.13
+void RTI1516ambassador::changeAttributeTransportationType
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::TransportationType theType)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Change_Attribute_Transportation_Type req, rep ;
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+ req.setTransportationType(toCertiTransportationType(theType));
+
+ req.setAttributesSize(theAttributes.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 6.14
+void RTI1516ambassador::changeInteractionTransportationType
+(rti1516::InteractionClassHandle theClass,
+ rti1516::TransportationType theType)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::InteractionClassNotPublished,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Change_Interaction_Transportation_Type req, rep ;
+
+
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(theClass));
+ req.setTransportationType(toCertiTransportationType(theType));
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 6.17
+void RTI1516ambassador::requestAttributeValueUpdate
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Request_Object_Attribute_Value_Update req, rep ;
+
+ G.Out(pdGendoc,"enter
RTI1516ambassador::requestObjectAttributeValueUpdate");
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
+ size_t attr_num = theAttributes.size();
+ req.setAttributesSize( attr_num );
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); i < attr_num; ++it, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+ req.setTag(varLengthDataAsString(theUserSuppliedTag));
+
+ privateRefs->executeService(&req, &rep);
+ G.Out(pdGendoc,"exit
RTI1516ambassador::requestObjectAttributeValueUpdate");
+ }
+
+void RTI1516ambassador::requestAttributeValueUpdate
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Request_Class_Attribute_Value_Update req, rep ;
+ G.Out(pdGendoc,"enter
RTI1516ambassador::requestClassAttributeValueUpdate");
+
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(theClass));
+
+ assignAHSAndExecuteService(theAttributes, req, rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::requestClassAttributeValueUpdate");
+ }
+
+///////////////////////////////////
+// Ownership Management Services //
+///////////////////////////////////
+// 7.2
+void RTI1516ambassador::unconditionalAttributeOwnershipDivestiture
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Unconditional_Attribute_Ownership_Divestiture req, rep ;
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
+ req.setAttributesSize(theAttributes.size());
+ uint32_t i=0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 7.3
+void RTI1516ambassador::negotiatedAttributeOwnershipDivestiture
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::AttributeAlreadyBeingDivested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Negotiated_Attribute_Ownership_Divestiture req, rep ;
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+ if (&theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL) {
+ throw rti1516::RTIinternalError (L"Calling
negotiatedAttributeOwnershipDivestiture with Tag NULL") ;
+ }
+ req.setTag(certi::varLengthDataAsString(theUserSuppliedTag));
+
+ req.setAttributesSize(theAttributes.size());
+ uint32_t i=0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 7.6
+void RTI1516ambassador::confirmDivestiture
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & confirmedAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::AttributeDivestitureWasNotRequested,
+ rti1516::NoAcquisitionPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 7.8
+void RTI1516ambassador::attributeOwnershipAcquisition
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & desiredAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::ObjectClassNotPublished,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotPublished,
+ rti1516::FederateOwnsAttributes,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Attribute_Ownership_Acquisition req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+ if (&theUserSuppliedTag == NULL || theUserSuppliedTag.data() == NULL )
+ {
+ throw rti1516::RTIinternalError (L"Calling
attributeOwnershipAcquisition with Tag NULL") ;
+ }
+ req.setTag(certi::varLengthDataAsString(theUserSuppliedTag));
+
+ req.setAttributesSize(desiredAttributes.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
desiredAttributes.begin(); it != desiredAttributes.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 7.9
+void RTI1516ambassador::attributeOwnershipAcquisitionIfAvailable
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & desiredAttributes)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::ObjectClassNotPublished,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotPublished,
+ rti1516::FederateOwnsAttributes,
+ rti1516::AttributeAlreadyBeingAcquired,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Attribute_Ownership_Acquisition_If_Available req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
+ req.setAttributesSize(desiredAttributes.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
desiredAttributes.begin(); it != desiredAttributes.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 7.12 (in RTI1.3 this function is called: AttributeOwnershipReleaseResponse)
+void RTI1516ambassador::attributeOwnershipDivestitureIfWanted
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::AttributeHandleSet & theDivestedAttributes) // filled by RTI
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Attribute_Ownership_Release_Response req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
+ assignAHSAndExecuteService(theAttributes, req, rep);
+
+ if (rep.getExceptionType() == e_NO_EXCEPTION) {
+ theDivestedAttributes.clear();
+ for (uint32_t i=0;i<rep.getAttributesSize();++i) {
+
theDivestedAttributes.insert(rti1516::AttributeHandleFriend::createRTI1516Handle(rep.getAttributes()[i]));
+ }
+ }
+
+ }
+
+// 7.13
+void RTI1516ambassador::cancelNegotiatedAttributeOwnershipDivestiture
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::AttributeDivestitureWasNotRequested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Cancel_Negotiated_Attribute_Ownership_Divestiture req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
+ req.setAttributesSize(theAttributes.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 7.14
+void RTI1516ambassador::cancelAttributeOwnershipAcquisition
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeAlreadyOwned,
+ rti1516::AttributeAcquisitionWasNotRequested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Cancel_Attribute_Ownership_Acquisition req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
+ req.setAttributesSize(theAttributes.size());
+ uint32_t i = 0;
+ for ( rti1516::AttributeHandleSet::const_iterator it =
theAttributes.begin(); it != theAttributes.end(); it++, ++i)
+ {
+
req.setAttributes(rti1516::AttributeHandleFriend::toCertiHandle(*it),i);
+ }
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 7.16
+void RTI1516ambassador::queryAttributeOwnership
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandle theAttribute)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Query_Attribute_Ownership req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
req.setAttribute(rti1516::AttributeHandleFriend::toCertiHandle(theAttribute));
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 7.18
+bool RTI1516ambassador::isAttributeOwnedByFederate
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandle theAttribute)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Is_Attribute_Owned_By_Federate req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+
req.setAttribute(rti1516::AttributeHandleFriend::toCertiHandle(theAttribute));
+
+ privateRefs->executeService(&req, &rep);
+
+ return (rep.getTag() == "RTI_TRUE") ? true : false;
+ }
+
+//////////////////////////////
+// Time Management Services //
+//////////////////////////////
+
+// 8.2
+void RTI1516ambassador::enableTimeRegulation
+(rti1516::LogicalTimeInterval const & theLookahead)
+throw (rti1516::TimeRegulationAlreadyEnabled,
+ rti1516::InvalidLookahead,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Enable_Time_Regulation req, rep ;
+
+ //req.setDate(certi_cast<RTIfedTime>()(theFederateTime).getTime());
//JRE: DATE IS NOT USED!
+
+ //JRE: is dit wel goed?
+ //JvY: TODO Controleren of dit blijft werken met andere tijdsimplementaties
+ union ud {
+ double dv;
+ uint64_t uv;
+ } value;
+#ifdef HOST_IS_BIG_ENDIAN
+ memcpy(&(value.uv), theLookahead.encode().data(), sizeof(double));
+#else
+ value.uv = CERTI_DECODE_DOUBLE_FROM_UINT64BE(theLookahead.encode().data());
+#endif
+ double lookAheadTime = value.dv;
+ req.setLookahead(lookAheadTime);
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.4
+void RTI1516ambassador::disableTimeRegulation ()
+throw (rti1516::TimeRegulationIsNotEnabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Disable_Time_Regulation req, rep ;
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.5
+void RTI1516ambassador::enableTimeConstrained ()
+throw (rti1516::TimeConstrainedAlreadyEnabled,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Enable_Time_Constrained req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.7
+void RTI1516ambassador::disableTimeConstrained ()
+throw (rti1516::TimeConstrainedIsNotEnabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Disable_Time_Constrained req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.8
+void RTI1516ambassador::timeAdvanceRequest
+(rti1516::LogicalTime const & theTime)
+throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Time_Advance_Request req, rep ;
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.9
+void RTI1516ambassador::timeAdvanceRequestAvailable
+(rti1516::LogicalTime const & theTime)
+throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Time_Advance_Request_Available req, rep ;
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.10
+void RTI1516ambassador::nextMessageRequest
+(rti1516::LogicalTime const & theTime)
+throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Next_Event_Request req, rep ;
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.11
+void RTI1516ambassador::nextMessageRequestAvailable
+(rti1516::LogicalTime const & theTime)
+throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Next_Event_Request_Available req, rep ;
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.12
+void RTI1516ambassador::flushQueueRequest
+(rti1516::LogicalTime const & theTime)
+throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ // JvY: Implementation copied from previous CERTI implementation,
including immediate throw.
+ throw rti1516::RTIinternalError(L"Unimplemented Service
flushQueueRequest");
+ M_Flush_Queue_Request req, rep ;
+
+ certi::FederationTime
certiFedTime(certi_cast<RTI1516fedTime>()(theTime).getFedTime());
+ req.setDate(certiFedTime);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.14
+void RTI1516ambassador::enableAsynchronousDelivery ()
+throw (rti1516::AsynchronousDeliveryAlreadyEnabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ // throw AsynchronousDeliveryAlreadyEnabled("Default value (non HLA)");
+
+ M_Enable_Asynchronous_Delivery req, rep ;
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.15
+void RTI1516ambassador::disableAsynchronousDelivery ()
+throw (rti1516::AsynchronousDeliveryAlreadyDisabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Disable_Asynchronous_Delivery req, rep ;
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.16
+bool RTI1516ambassador::queryGALT (rti1516::LogicalTime & theTime)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ //TODO JRE: goed testen! Is GALT wel precies het zelfde als LBTS?
+ M_Query_Lbts req, rep ;
+
+ privateRefs->executeService(&req, &rep);
+
+ //TODO JRE: goed testen of deze return value wel klopt!
+ certi::FederationTime fedTime = rep.getDate();
+ if (fedTime.getTime() == 0.0) {
+ return false;
+ }
+
+ // JvY: TODO Controleren of dit blijft werken met andere
tijdsimplementaties
+ certi_cast<RTI1516fedTime>()(theTime) = rep.getDate().getTime();
+
+ return true;
+ }
+
+// 8.17
+void RTI1516ambassador::queryLogicalTime (rti1516::LogicalTime & theTime)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Query_Federate_Time req, rep ;
+
+ privateRefs->executeService(&req, &rep);
+
+ // JvY: TODO Controleren of dit blijft werken met andere
tijdsimplementaties
+ certi_cast<RTI1516fedTime>()(theTime) = rep.getDate().getTime();
+ }
+
+// 8.18
+bool RTI1516ambassador::queryLITS (rti1516::LogicalTime & theTime)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ //TODO JRE: goed testen! Is LITS wel precies het zelfde als
QueryMinNextEventTime?
+ M_Query_Min_Next_Event_Time req, rep ;
+
+ privateRefs->executeService(&req, &rep);
+
+ //TODO JRE: goed testen of deze return value wel klopt!
+ certi::FederationTime fedTime = rep.getDate();
+ if (fedTime.getTime() == 0.0) {
+ return false;
+ }
+ // JvY: TODO Controleren of dit blijft werken met andere
tijdsimplementaties
+ certi_cast<RTI1516fedTime>()(theTime) = rep.getDate().getTime();
+
+ return true;
+ }
+
+// 8.19
+void RTI1516ambassador::modifyLookahead
+(rti1516::LogicalTimeInterval const & theLookahead)
+throw (rti1516::TimeRegulationIsNotEnabled,
+ rti1516::InvalidLookahead,
+ rti1516::InTimeAdvancingState,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 8.20
+void RTI1516ambassador::queryLookahead (rti1516::LogicalTimeInterval &
interval)
+throw (rti1516::TimeRegulationIsNotEnabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 8.21
+void RTI1516ambassador::retract
+(rti1516::MessageRetractionHandle theHandle)
+throw (rti1516::InvalidRetractionHandle,
+ rti1516::TimeRegulationIsNotEnabled,
+ rti1516::MessageCanNoLongerBeRetracted,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ throw rti1516::RTIinternalError(L"Unimplemented Service retract");
+ M_Retract req, rep ;
+
+ certi::EventRetraction event =
rti1516::MessageRetractionHandleFriend::createEventRetraction(theHandle);
+ req.setEventRetraction(event);
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 8.23
+void RTI1516ambassador::changeAttributeOrderType
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::OrderType theType)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Change_Attribute_Order_Type req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+ req.setOrder(certi::toCertiOrderType(theType));
+
+ assignAHSAndExecuteService(theAttributes, req, rep);
+ }
+
+// 8.24
+void RTI1516ambassador::changeInteractionOrderType
+(rti1516::InteractionClassHandle theClass,
+ rti1516::OrderType theType)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::InteractionClassNotPublished,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Change_Interaction_Order_Type req, rep ;
+
+
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(theClass));
+ req.setOrder(certi::toCertiOrderType(theType));
+
+ privateRefs->executeService(&req, &rep);
+ }
+
+//////////////////////////////////
+// Data Distribution Management //
+//////////////////////////////////
+
+// 9.2
+rti1516::RegionHandle RTI1516ambassador::createRegion
+(rti1516::DimensionHandleSet const & theDimensions)
+throw (rti1516::InvalidDimensionHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.3
+void RTI1516ambassador::commitRegionModifications
+(rti1516::RegionHandleSet const & theRegionHandleSet)
+throw (rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.4
+void RTI1516ambassador::deleteRegion
+(rti1516::RegionHandle theRegion)
+throw (rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::RegionInUseForUpdateOrSubscription,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.5
+rti1516::ObjectInstanceHandle
RTI1516ambassador::registerObjectInstanceWithRegions
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::ObjectClassNotPublished,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotPublished,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+rti1516::ObjectInstanceHandle
RTI1516ambassador::registerObjectInstanceWithRegions
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector,
+ std::wstring const & theObjectInstanceName)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::ObjectClassNotPublished,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotPublished,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::ObjectInstanceNameNotReserved,
+ rti1516::ObjectInstanceNameInUse,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.6
+void RTI1516ambassador::associateRegionsForUpdates
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.7
+void RTI1516ambassador::unassociateRegionsForUpdates
+(rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.8
+void RTI1516ambassador::subscribeObjectClassAttributesWithRegions
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector,
+ bool active)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.9
+void RTI1516ambassador::unsubscribeObjectClassAttributesWithRegions
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.10
+void RTI1516ambassador::subscribeInteractionClassWithRegions
+(rti1516::InteractionClassHandle theClass,
+ rti1516::RegionHandleSet const & theRegionHandleSet,
+ bool active)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateServiceInvocationsAreBeingReportedViaMOM,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.11
+void RTI1516ambassador::unsubscribeInteractionClassWithRegions
+(rti1516::InteractionClassHandle theClass,
+ rti1516::RegionHandleSet const & theRegionHandleSet)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.12
+void RTI1516ambassador::sendInteractionWithRegions
+(rti1516::InteractionClassHandle theInteraction,
+ rti1516::ParameterHandleValueMap const & theParameterValues,
+ rti1516::RegionHandleSet const & theRegionHandleSet,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::InteractionClassNotPublished,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+rti1516::MessageRetractionHandle RTI1516ambassador::sendInteractionWithRegions
+(rti1516::InteractionClassHandle theInteraction,
+ rti1516::ParameterHandleValueMap const & theParameterValues,
+ rti1516::RegionHandleSet const & theRegionHandleSet,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::LogicalTime const & theTime)
+throw (rti1516::InteractionClassNotDefined,
+ rti1516::InteractionClassNotPublished,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 9.13
+void RTI1516ambassador::requestAttributeValueUpdateWithRegions
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const & theSet,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+//////////////////////////
+// RTI Support Services //
+//////////////////////////
+
+// 10.2
+rti1516::ObjectClassHandle RTI1516ambassador::getObjectClassHandle
+(std::wstring const & theName)
+throw (rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Object_Class_Handle req, rep ;
+
+ G.Out(pdGendoc,"enter RTI1516ambassador::getObjectClassHandle");
+
+ std::string nameAsString(theName.begin(), theName.end());
+ req.setClassName(nameAsString);
+ privateRefs->executeService(&req, &rep);
+
+ G.Out(pdGendoc,"exit RTI1516ambassador::getObjectClassHandle");
+ rti1516::ObjectClassHandle rti1516Handle =
rti1516::ObjectClassHandleFriend::createRTI1516Handle(rep.getObjectClass());
+
+ return rti1516Handle;
+ }
+
+// 10.3
+std::wstring RTI1516ambassador::getObjectClassName
+(rti1516::ObjectClassHandle theHandle)
+throw (rti1516::InvalidObjectClassHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Object_Class_Name req, rep ;
+
+ certi::ObjectClassHandle certiHandle =
rti1516::ObjectClassHandleFriend::toCertiHandle(theHandle);
+ req.setObjectClass(certiHandle);
+ try {
+ privateRefs->executeService(&req, &rep);
+ } catch (rti1516::ObjectClassNotDefined &e)
+ {
+ throw rti1516::InvalidObjectClassHandle(e.what());
+ }
+
+ std::string nameString = rep.getClassName();
+ std::wstring nameWString(nameString.begin(), nameString.end());
+
+ //return hla_strdup(rep.getClassName());
+ return nameWString;
+ }
+
+// 10.4
+rti1516::AttributeHandle RTI1516ambassador::getAttributeHandle
+(rti1516::ObjectClassHandle whichClass,
+ std::wstring const & theAttributeName)
+throw (rti1516::InvalidObjectClassHandle,
+ rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ G.Out(pdGendoc,"enter RTI::RTI1516ambassador::getAttributeHandle");
+ M_Get_Attribute_Handle req, rep ;
+
+ std::string nameAsString(theAttributeName.begin(), theAttributeName.end());
+ req.setAttributeName(nameAsString);
+
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(whichClass));
+
+ try {
+ privateRefs->executeService(&req, &rep);
+ } catch (rti1516::ObjectClassNotDefined &e)
+ {
+ if ( ! whichClass.isValid() ) {
+ throw rti1516::InvalidObjectClassHandle(e.what());
+ } else {
+ throw rti1516::NameNotFound(e.what());
+ }
+ }
+
+
+
+ G.Out(pdGendoc,"exit RTI::RTI1516ambassador::getAttributeHandle");
+ return
rti1516::AttributeHandleFriend::createRTI1516Handle(rep.getAttribute());
+ }
+
+// 10.5
+std::wstring RTI1516ambassador::getAttributeName
+(rti1516::ObjectClassHandle whichClass,
+ rti1516::AttributeHandle theHandle)
+throw (rti1516::InvalidObjectClassHandle,
+ rti1516::InvalidAttributeHandle,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Attribute_Name req, rep ;
+
+ req.setAttribute(rti1516::AttributeHandleFriend::toCertiHandle(theHandle));
+
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(whichClass));
+ try {
+ privateRefs->executeService(&req, &rep);
+ } catch (rti1516::ObjectClassNotDefined &e)
+ {
+ if ( !whichClass.isValid() )
+ {
+ throw rti1516::InvalidObjectClassHandle(e.what());
+ } else
+ {
+ throw;
+ }
+ } catch ( rti1516::AttributeNotDefined &e)
+ {
+ if (! theHandle.isValid() )
+ {
+ throw rti1516::InvalidAttributeHandle(e.what());
+ } else
+ {
+ throw;
+ }
+ }
+
+ //return hla_strdup(rep.getAttributeName());
+
+ std::string nameString = rep.getAttributeName();
+ std::wstring nameWString(nameString.begin(), nameString.end());
+
+ return nameWString;
+ }
+
+// 10.6
+rti1516::InteractionClassHandle RTI1516ambassador::getInteractionClassHandle
+(std::wstring const & theName)
+throw (rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Interaction_Class_Handle req, rep ;
+ std::string nameString(theName.begin(), theName.end());
+ req.setClassName(nameString);
+
+ privateRefs->executeService(&req, &rep);
+
+ return
rti1516::InteractionClassHandleFriend::createRTI1516Handle(rep.getInteractionClass());
+ }
+
+// 10.7
+std::wstring RTI1516ambassador::getInteractionClassName
+(rti1516::InteractionClassHandle theHandle)
+throw (rti1516::InvalidInteractionClassHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Interaction_Class_Name req, rep ;
+
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(theHandle));
+ try {
+ privateRefs->executeService(&req, &rep);
+ } catch (rti1516::InteractionClassNotDefined &e)
+ {
+ if ( !theHandle.isValid() )
+ {
+ throw rti1516::InvalidInteractionClassHandle(e.what());
+ } else
+ {
+ throw;
+ }
+ }
+
+ //return hla_strdup(rep.getClassName());
+ std::string nameString = rep.getClassName();
+ std::wstring nameWString(nameString.begin(), nameString.end());
+
+ return nameWString;
+ }
+
+// 10.8
+rti1516::ParameterHandle RTI1516ambassador::getParameterHandle
+(rti1516::InteractionClassHandle whichClass,
+ std::wstring const & theName)
+throw (rti1516::InvalidInteractionClassHandle,
+ rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Parameter_Handle req, rep ;
+ std::string nameString(theName.begin(), theName.end());
+ req.setParameterName(nameString);
+
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(whichClass));
+
+ try {
+ privateRefs->executeService(&req, &rep);
+ } catch (rti1516::InteractionClassNotDefined &e)
+ {
+ if ( !whichClass.isValid() )
+ {
+ throw rti1516::InvalidInteractionClassHandle(e.what());
+ } else
+ {
+ throw;
+ }
+ }
+
+ return
rti1516::ParameterHandleFriend::createRTI1516Handle(rep.getParameter());
+ }
+
+// 10.9
+std::wstring RTI1516ambassador::getParameterName
+(rti1516::InteractionClassHandle whichClass,
+ rti1516::ParameterHandle theHandle)
+throw ( rti1516::InvalidInteractionClassHandle,
+ rti1516::InvalidParameterHandle,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Parameter_Name req, rep ;
+
+ req.setParameter(rti1516::ParameterHandleFriend::toCertiHandle(theHandle));
+
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(whichClass));
+
+ try {
+ privateRefs->executeService(&req, &rep);
+ } catch (rti1516::InteractionClassNotDefined &e)
+ {
+ if ( !whichClass.isValid() )
+ {
+ throw rti1516::InvalidInteractionClassHandle(e.what());
+ } else
+ {
+ throw;
+ }
+ }
+
+ //return hla_strdup(rep.getParameterName());
+ std::string nameString = rep.getParameterName();
+ std::wstring nameWString(nameString.begin(), nameString.end());
+
+ return nameWString;
+ }
+
+// 10.10
+rti1516::ObjectInstanceHandle RTI1516ambassador::getObjectInstanceHandle
+(std::wstring const & theName)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Object_Instance_Handle req, rep ;
+ std::string nameString(theName.begin(), theName.end());
+ req.setObjectInstanceName(nameString);
+
+ privateRefs->executeService(&req, &rep);
+ return
rti1516::ObjectInstanceHandleFriend::createRTI1516Handle(rep.getObject());
+ }
+
+// 10.11
+std::wstring RTI1516ambassador::getObjectInstanceName
+(rti1516::ObjectInstanceHandle theHandle)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Object_Instance_Name req, rep ;
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theHandle));
+ privateRefs->executeService(&req, &rep);
+
+ //return hla_strdup(rep.getObjectInstanceName());
+ std::string nameString = rep.getObjectInstanceName();
+ std::wstring nameWString(nameString.begin(), nameString.end());
+
+ return nameWString;
+ }
+
+// 10.12
+rti1516::DimensionHandle RTI1516ambassador::getDimensionHandle
+(std::wstring const & theName)
+throw (rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Dimension_Handle req, rep ;
+
+ std::string nameString(theName.begin(), theName.end());
+ req.setDimensionName(nameString);
+ //req.setSpace(space); //SPACE NIET NODIG IN 1516 STANDAARD???
+ privateRefs->executeService(&req, &rep);
+ return
rti1516::DimensionHandleFriend::createRTI1516Handle(rep.getDimension());
+ }
+
+// 10.13
+std::wstring RTI1516ambassador::getDimensionName
+(rti1516::DimensionHandle theHandle)
+throw (rti1516::InvalidDimensionHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Dimension_Name req, rep ;
+
+ req.setDimension(rti1516::DimensionHandleFriend::toCertiHandle(theHandle));
+ //req.setSpace(space);
+ privateRefs->executeService(&req, &rep);
+ //return hla_strdup(rep.getDimensionName());
+ std::string nameString = rep.getDimensionName();
+ std::wstring nameWString(nameString.begin(), nameString.end());
+
+ return nameWString;
+ }
+
+// 10.14
+unsigned long RTI1516ambassador::getDimensionUpperBound
+(rti1516::DimensionHandle theHandle)
+throw (rti1516::InvalidDimensionHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 10.15
+rti1516::DimensionHandleSet
RTI1516ambassador::getAvailableDimensionsForClassAttribute
+(rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandle theHandle)
+throw (rti1516::InvalidObjectClassHandle,
+ rti1516::InvalidAttributeHandle,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Attribute_Space_Handle req, rep ;
+
+ req.setAttribute(rti1516::AttributeHandleFriend::toCertiHandle(theHandle));
+
req.setObjectClass(rti1516::ObjectClassHandleFriend::toCertiHandle(theClass));
+ privateRefs->executeService(&req, &rep);
+
+ //JRE TODO: Use space handle to to get the address@hidden
+ //return rep.getSpace();
+ rti1516::DimensionHandleSet invalidSet;
+ return invalidSet;
+ }
+
+// 10.16
+rti1516::ObjectClassHandle RTI1516ambassador::getKnownObjectClassHandle
+(rti1516::ObjectInstanceHandle theObject)
+throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Object_Class req, rep ;
+
+
req.setObject(rti1516::ObjectInstanceHandleFriend::toCertiHandle(theObject));
+ privateRefs->executeService(&req, &rep);
+ return
rti1516::ObjectClassHandleFriend::createRTI1516Handle(rep.getObjectClass());
+ }
+
+// 10.17
+rti1516::DimensionHandleSet
RTI1516ambassador::getAvailableDimensionsForInteractionClass
+(rti1516::InteractionClassHandle theClass)
+throw (rti1516::InvalidInteractionClassHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Interaction_Space_Handle req, rep ;
+
+
req.setInteractionClass(rti1516::InteractionClassHandleFriend::toCertiHandle(theClass));
+ this->privateRefs->executeService(&req, &rep);
+
+ //JRE TODO: Use space handle to to get the address@hidden
+ //return rep.getSpace();
+ rti1516::DimensionHandleSet invalidSet;
+ return invalidSet;
+ }
+
+// 10.18
+rti1516::TransportationType RTI1516ambassador::getTransportationType
+(std::wstring const & transportationName)
+throw (rti1516::InvalidTransportationName,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Transportation_Handle req, rep ;
+ std::string nameString(transportationName.begin(),
transportationName.end());
+ req.setTransportationName(nameString);
+ privateRefs->executeService(&req, &rep);
+
+ return certi::toRTI1516TransportationType(rep.getTransportation());
+ }
+
+// 10.19
+std::wstring RTI1516ambassador::getTransportationName
+(rti1516::TransportationType transportationType)
+throw (rti1516::InvalidTransportationType,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Transportation_Name req, rep ;
+
+
req.setTransportation(certi::toCertiTransportationType(transportationType));
+ privateRefs->executeService(&req, &rep);
+
+ //return hla_strdup(rep.getTransportationName());
+ std::string nameString = rep.getTransportationName();
+ std::wstring nameWString(nameString.begin(), nameString.end());
+
+ return nameWString;
+ }
+
+// 10.20
+rti1516::OrderType RTI1516ambassador::getOrderType
+(std::wstring const & orderName)
+throw (rti1516::InvalidOrderName,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Ordering_Handle req, rep ;
+
+ std::string nameAsString(orderName.begin(), orderName.end());
+ req.setOrderingName(nameAsString);
+ privateRefs->executeService(&req, &rep);
+
+ return certi::toRTI1516OrderType(rep.getOrdering());
+ }
+
+// 10.21
+std::wstring RTI1516ambassador::getOrderName
+(rti1516::OrderType orderType)
+throw (rti1516::InvalidOrderType,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ M_Get_Ordering_Name req, rep ;
+
+ req.setOrdering(certi::toCertiOrderType(orderType));
+ privateRefs->executeService(&req, &rep);
+
+ //return hla_strdup(rep.getOrderingName());
+ std::string nameString = rep.getOrderingName();
+ std::wstring nameWString(nameString.begin(), nameString.end());
+
+ return nameWString;
+ }
+
+// 10.22
+/**
+ * Sets the ClassRelevanceAdvisory (CRA) switch to true. The switch
+ * state is hold on the RTIG side. That's why the message
+ * ENABLE_CLASS_RELEVANCE_ADVISORY_SWITCH
+ * is transmitted to RTIA. RTIA transmits the message towards RTIG.
+ *
+ * By default, the CRA switch is true. This causes a delivery of the
+ * federate service startRegistrationForObjectClass to a publisher
+ * if there are any new subscribers for the federates published object
+ * classes. If there are no more subscribers a publisher gets the
+ * federate service stopRegistrationForObjectClass.
+ *
+ * By disabling the CRA switch the federate is no longer informed by
+ * subscriptions to its published object classes, i.e. the federate
+ * services startRegistrationForObjectClass and
+ * stopRegistrationForObjectClass respectively are not invoked.
+ * @see disableClassRelevanceAdvisorySwitch()
+ */
+void RTI1516ambassador::enableObjectClassRelevanceAdvisorySwitch ()
+throw (rti1516::ObjectClassRelevanceAdvisorySwitchIsOn,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Enable_Class_Relevance_Advisory_Switch req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 10.23
+/**
+ * Sets the ClassRelevanceAdvisory (CRA) switch to false. The switch
+ * state is hold on the RTIG side. That's why the message
+ * DISABLE_CLASS_RELEVANCE_ADVISORY_SWITCH
+ * is transmitted to RTIA. RTIA transmits the message towards RTIG.
+ *
+ * By default, the CRA switch is true. This causes a delivery of the
+ * federate service startRegistrationForObjectClass to a publisher
+ * if there are any new subscribers for the federates published object
+ * classes. If there are no more subscribers a publisher gets the
+ * federate service stopRegistrationForObjectClass.
+ * @see enableClassRelevanceAdvisorySwitch()
+ *
+ * By disabling the CRA switch the federate is no longer informed by
+ * subscriptions to its published object classes, i.e. the federate
+ * services startRegistrationForObjectClass and
+ * stopRegistrationForObjectClass respectively are not invoked.
+ */
+void RTI1516ambassador::disableObjectClassRelevanceAdvisorySwitch ()
+throw (rti1516::ObjectClassRelevanceAdvisorySwitchIsOff,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Disable_Class_Relevance_Advisory_Switch req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 10.24
+/**
+ * Sets the AttributeRelevanceAdvisory (ARA) switch to true. The switch
+ * state is hold on the RTIG side. That's why the message
+ * ENABLE_ATTRIBUTE_RELEVANCE_ADVISORY_SWITCH
+ * is transmitted to RTIA. RTIA transmits the message towards RTIG.
+ *
+ * By default, the ARA switch is false. When enabling the ARA switch
+ * the federate is informed by the federate service
+ * turnUpdatesOnForObjectInstance of new object instances within remote
+ * federates actively subscribed to its published attributes. If there
+ * are no active subscribers for a set of instance-attributes the federate
+ * receives the federate service turnUpdatesOffForObjectInstance.
+ *
+ * By disabling the ARA switch the federate is no longer informed by
+ * subscriptions to its published attributes, i.e. the federate
+ * services turnUpdatesOnForObjectInstance and
+ * turnUpdatesOffForObjectInstance respectively are not invoked.
+ * @see disableAttributeRelevanceAdvisorySwitch()
+ */
+void RTI1516ambassador::enableAttributeRelevanceAdvisorySwitch ()
+throw (rti1516::AttributeRelevanceAdvisorySwitchIsOn,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Enable_Attribute_Relevance_Advisory_Switch req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 10.25
+/**
+ * Sets the AttributeRelevanceAdvisory (ARA) switch to false. The switch
+ * state is hold on the RTIG side. That's why the message
+ * DISABLE_ATTRIBUTE_RELEVANCE_ADVISORY_SWITCH
+ * is transmitted to RTIA. RTIA transmits the message towards RTIG.
+ *
+ * By default, the ARA switch is false. When enabling the ARA switch
+ * the federate is informed by the federate service
+ * turnUpdatesOnForObjectInstance of new object instances within remote
+ * federates actively subscribed to its published attributes. If there
+ * are no active subscribers for a set of instance-attributes the federate
+ * receives the federate service turnUpdatesOffForObjectInstance.
+ * @see enableAttributeRelevanceAdvisorySwitch()
+ *
+ * By disabling the ARA switch the federate is no longer informed by
+ * subscriptions to its published attributes, i.e. the federate
+ * services turnUpdatesOnForObjectInstance and
+ * turnUpdatesOffForObjectInstance respectively are not invoked.
+ */
+void RTI1516ambassador::disableAttributeRelevanceAdvisorySwitch ()
+throw (rti1516::AttributeRelevanceAdvisorySwitchIsOff,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Disable_Attribute_Relevance_Advisory_Switch req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 10.26
+/**
+ * Sets the AttributeScopeAdvisory (ASA) switch to true. The switch state
+ * is hold on the RTIG side. That's why the message
+ * ENABLE_ATTRIBUTE_SCOPE_ADVISORY_SWITCH
+ * is transmitted to RTIA. RTIA transmits the message towards RTIG.
+ *
+ * By default, the ASA switch is false. When enabling the ASA switch
+ * the federate is informed by the federate services
+ * attributesInScope and attributesOutScope respectively of discovered
+ * or registrated but not owned attribute-instances intersecting or
+ * leaving its subscription regions.
+ *
+ * By disabling the ASA switch the federate is no longer informed of
+ * changes in attribute-instance scope, i.e. the federate
+ * services attributesInScope and attributesOutScope respectively are
+ * not invoked.
+ * @see disableAttributeScopeAdvisorySwitch()
+ */
+void RTI1516ambassador::enableAttributeScopeAdvisorySwitch ()
+throw (rti1516::AttributeScopeAdvisorySwitchIsOn,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Enable_Attribute_Scope_Advisory_Switch req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 10.27
+/**
+ * Sets the AttributeScopeAdvisory (ASA) switch to false. The switch state
+ * is hold on the RTIG side. That's why the message
+ * DISABLE_ATTRIBUTE_SCOPE_ADVISORY_SWITCH
+ * is transmitted to RTIA. RTIA transmits the message towards RTIG.
+ *
+ * By default, the ASA switch is false. When enabling the ASA switch
+ * the federate is informed by the federate services
+ * attributesInScope and attributesOutScope respectively of discovered
+ * or registrated but not owned attribute-instances intersecting or
+ * leaving its subscription regions.
+ * @see enableAttributeScopeAdvisorySwitch()
+ *
+ * By disabling the ASA switch the federate is no longer informed of
+ * changes in attribute-instance scope, i.e. the federate
+ * services attributesInScope and attributesOutScope respectively are
+ * not invoked.
+ */
+void RTI1516ambassador::disableAttributeScopeAdvisorySwitch ()
+throw (rti1516::AttributeScopeAdvisorySwitchIsOff,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Disable_Attribute_Scope_Advisory_Switch req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 10.28
+/**
+ * Sets the InteractionRelevanceAdvisory (IRA) switch to true. The switch
+ * state is hold on the RTIG side. That's why the message
+ * ENABLE_INTERACTION_RELEVANCE_ADVISORY_SWITCH
+ * is transmitted to RTIA. RTIA transmits the message towards RTIG.
+ *
+ * By default, the IRA switch is true. This causes a delivery of the
+ * federate service turnInteractionsOn to a publisher if there are
+ * any new subscribers for the federates published interaction
+ * classes. If there are no more subscribers a publisher gets the
+ * federate service turnInteractionsOff().
+ *
+ * By disabling the IRA switch the federate is no longer informed by
+ * subscriptions to its published interaction classes, i.e. the federate
+ * services turnInteractionsOn and turnInteractionsOff respectively are
+ * not invoked.
+ * @see disableInteractionRelevanceAdvisorySwitch()
+ */
+void RTI1516ambassador::enableInteractionRelevanceAdvisorySwitch ()
+throw (rti1516::InteractionRelevanceAdvisorySwitchIsOn,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Enable_Interaction_Relevance_Advisory_Switch req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 10.29
+/**
+ * Sets the InteractionRelevanceAdvisory (IRA) switch to false. The switch
+ * state is hold on the RTIG side. That's why the message
+ * DISABLE_INTERACTION_RELEVANCE_ADVISORY_SWITCH
+ * is transmitted to RTIA. RTIA transmits the message towards RTIG.
+ *
+ * By default, the IRA switch is true. This causes a delivery of the
+ * federate service turnInteractionsOn to a publisher if there are
+ * any new subscribers for the federates published interaction
+ * classes. If there are no more subscribers a publisher gets the
+ * federate service turnInteractionsOff().
+ * @see enableInteractionRelevanceAdvisorySwitch()
+ *
+ * By disabling the IRA switch the federate is no longer informed by
+ * subscriptions to its published interaction classes, i.e. the federate
+ * services turnInteractionsOn and turnInteractionsOff respectively are
+ * not invoked.
+ */
+void RTI1516ambassador::disableInteractionRelevanceAdvisorySwitch ()
+throw (rti1516::InteractionRelevanceAdvisorySwitchIsOff,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ M_Disable_Interaction_Relevance_Advisory_Switch req, rep ;
+ privateRefs->executeService(&req, &rep);
+ }
+
+// 10.30
+
+rti1516::DimensionHandleSet RTI1516ambassador::getDimensionHandleSet
+(rti1516::RegionHandle theRegionHandle)
+throw (rti1516::InvalidRegion,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 10.31
+
+rti1516::RangeBounds RTI1516ambassador::getRangeBounds
+(rti1516::RegionHandle theRegionHandle,
+ rti1516::DimensionHandle theDimensionHandle)
+throw (rti1516::InvalidRegion,
+ rti1516::RegionDoesNotContainSpecifiedDimension,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 10.32
+void RTI1516ambassador::setRangeBounds
+(rti1516::RegionHandle theRegionHandle,
+ rti1516::DimensionHandle theDimensionHandle,
+ rti1516::RangeBounds const & theRangeBounds)
+throw (rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::RegionDoesNotContainSpecifiedDimension,
+ rti1516::InvalidRangeBound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 10.33
+unsigned long RTI1516ambassador::normalizeFederateHandle
+(rti1516::FederateHandle theFederateHandle)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::InvalidFederateHandle,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 10.34
+unsigned long RTI1516ambassador::normalizeServiceGroup
+(rti1516::ServiceGroupIndicator theServiceGroup)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::InvalidServiceGroup,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 10.37
+bool RTI1516ambassador::evokeCallback(double approximateMinimumTimeInSeconds)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ return __tick_kernel(false, approximateMinimumTimeInSeconds,
approximateMinimumTimeInSeconds);
+ }
+
+// 10.38
+bool RTI1516ambassador::evokeMultipleCallbacks(double
approximateMinimumTimeInSeconds,
+ double approximateMaximumTimeInSeconds)
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError)
+ {
+ return __tick_kernel(true, approximateMinimumTimeInSeconds,
approximateMaximumTimeInSeconds);
+ }
+
+// 10.39
+void RTI1516ambassador::enableCallbacks ()
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+// 10.40
+void RTI1516ambassador::disableCallbacks ()
+throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError)
+ {
+ /* TODO */
+ throw rti1516::RTIinternalError(L"Not yet implemented");
+ }
+
+rti1516::FederateHandle RTI1516ambassador::decodeFederateHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return rti1516::FederateHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+rti1516::ObjectClassHandle RTI1516ambassador::decodeObjectClassHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return rti1516::ObjectClassHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+rti1516::InteractionClassHandle
RTI1516ambassador::decodeInteractionClassHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return
rti1516::InteractionClassHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+rti1516::ObjectInstanceHandle RTI1516ambassador::decodeObjectInstanceHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return
rti1516::ObjectInstanceHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+rti1516::AttributeHandle RTI1516ambassador::decodeAttributeHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return rti1516::AttributeHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+rti1516::ParameterHandle RTI1516ambassador::decodeParameterHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return rti1516::ParameterHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+rti1516::DimensionHandle RTI1516ambassador::decodeDimensionHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return rti1516::DimensionHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+rti1516::MessageRetractionHandle
RTI1516ambassador::decodeMessageRetractionHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return
rti1516::MessageRetractionHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+rti1516::RegionHandle RTI1516ambassador::decodeRegionHandle(
+ rti1516::VariableLengthData const & encodedValue) const
+{
+ return rti1516::RegionHandleFriend::createRTI1516Handle(encodedValue);
+}
+
+
+} // end namespace certi
Index: RTIambassadorImplementation.h
===================================================================
RCS file: RTIambassadorImplementation.h
diff -N RTIambassadorImplementation.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ RTIambassadorImplementation.h 6 Mar 2014 12:14:10 -0000 1.1
@@ -0,0 +1,1341 @@
+// ----------------------------------------------------------------------------
+// CERTI - HLA RunTime Infrastructure
+// Copyright (C) 2002-2014 ONERA
+//
+// This file is part of CERTI-libRTI
+//
+// CERTI-libRTI is free software ; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public License
+// as published by the Free Software Foundation ; either version 2 of
+// the License, or (at your option) any later version.
+//
+// CERTI-libRTI is distributed in the hope that it will be useful, but
+// WITHOUT ANY WARRANTY ; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this program ; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA
+//
+// ----------------------------------------------------------------------------
+// This interface is used to access the services of the RTI.
+
+#ifndef RTIambassador_h
+#define RTIambassador_h
+
+#include <RTI/RTIambassador.h>
+#include <RTI/RTIambassadorFactory.h>
+#include "RTIambassadorImplementation.h"
+#include "RTIambPrivateRefs.h"
+
+namespace certi
+{
+class RTI_EXPORT RTI1516ambassador : rti1516::RTIambassador
+{
+ friend std::auto_ptr< rti1516::RTIambassador >
+ rti1516::RTIambassadorFactory::createRTIambassador(std::vector<
std::wstring > & args)
+ throw (rti1516::BadInitializationParameter, rti1516::RTIinternalError);
+
+private:
+ RTI1516ambPrivateRefs* privateRefs ;
+
+ // Helper functions
+ template<typename T> void
+ assignAHSAndExecuteService(const rti1516::AttributeHandleSet &AHS, T &req,
T &rep);
+ template<typename T> void
+ assignPHVMAndExecuteService(const rti1516::ParameterHandleValueMap &PHVM,
T &req, T &rep);
+ template<typename T> void
+ assignAHVMAndExecuteService(const rti1516::AttributeHandleValueMap &AHVM,
T &req, T &rep);
+ // Helper function for CallBacks
+ bool __tick_kernel(bool, TickTime, TickTime)
+ throw (rti1516::SpecifiedSaveLabelDoesNotExist, rti1516::RTIinternalError);
+
+protected:
+ RTI1516ambassador()
+throw ();
+
+public:
+ virtual
+ ~RTI1516ambassador();
+ // throw ()
+
+ // 4.2
+ virtual void createFederationExecution
+ (std::wstring const & federationExecutionName,
+ std::wstring const & fullPathNameToTheFDDfile,
+ std::wstring const & logicalTimeImplementationName = L"")
+ throw (rti1516::FederationExecutionAlreadyExists,
+ rti1516::CouldNotOpenFDD,
+ rti1516::ErrorReadingFDD,
+ rti1516::CouldNotCreateLogicalTimeFactory,
+ rti1516::RTIinternalError);
+
+ // 4.3
+ virtual void destroyFederationExecution
+ (std::wstring const & federationExecutionName)
+ throw (rti1516::FederatesCurrentlyJoined,
+ rti1516::FederationExecutionDoesNotExist,
+ rti1516::RTIinternalError);
+
+ // 4.4
+ virtual rti1516::FederateHandle joinFederationExecution
+ (std::wstring const & federateType,
+ std::wstring const & federationExecutionName,
+ rti1516::FederateAmbassador & federateAmbassador)
+ throw (rti1516::FederateAlreadyExecutionMember,
+ rti1516::FederationExecutionDoesNotExist,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::CouldNotCreateLogicalTimeFactory,
+ rti1516::RTIinternalError);
+
+ // 4.5
+ virtual void resignFederationExecution
+ (rti1516::ResignAction resignAction)
+ throw (rti1516::OwnershipAcquisitionPending,
+ rti1516::FederateOwnsAttributes,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 4.6
+ virtual void registerFederationSynchronizationPoint
+ (std::wstring const & label,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual void registerFederationSynchronizationPoint
+ (std::wstring const & label,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::FederateHandleSet const & syncSet)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 4.9
+ virtual void synchronizationPointAchieved
+ (std::wstring const & label)
+ throw (rti1516::SynchronizationPointLabelNotAnnounced,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 4.11
+ virtual void requestFederationSave
+ (std::wstring const & label)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual void requestFederationSave
+ (std::wstring const & label,
+ rti1516::LogicalTime const & theTime)
+ throw (rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateUnableToUseTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 4.13
+ virtual void federateSaveBegun ()
+ throw (rti1516::SaveNotInitiated,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 4.14
+ virtual void federateSaveComplete ()
+ throw (rti1516::FederateHasNotBegunSave,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual void federateSaveNotComplete()
+ throw (rti1516::FederateHasNotBegunSave,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 4.16
+ virtual void queryFederationSaveStatus ()
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 4.18
+ virtual void requestFederationRestore
+ (std::wstring const & label)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 4.22
+ virtual void federateRestoreComplete ()
+ throw (rti1516::RestoreNotRequested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RTIinternalError);
+
+ virtual void federateRestoreNotComplete ()
+ throw (rti1516::RestoreNotRequested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RTIinternalError);
+
+ // 4.24
+ virtual void queryFederationRestoreStatus ()
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RTIinternalError);
+
+ /////////////////////////////////////
+ // Declaration Management Services //
+ /////////////////////////////////////
+
+ // 5.2
+ virtual void publishObjectClassAttributes
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & attributeList)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 5.3
+ virtual void unpublishObjectClass
+ (rti1516::ObjectClassHandle theClass)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::OwnershipAcquisitionPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual void unpublishObjectClassAttributes
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & attributeList)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::OwnershipAcquisitionPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 5.4
+ virtual void publishInteractionClass
+ (rti1516::InteractionClassHandle theInteraction)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 5.5
+ virtual void unpublishInteractionClass
+ (rti1516::InteractionClassHandle theInteraction)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 5.6
+ virtual void subscribeObjectClassAttributes
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & attributeList,
+ bool active = true)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 5.7
+ virtual void unsubscribeObjectClass
+ (rti1516::ObjectClassHandle theClass)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual void unsubscribeObjectClassAttributes
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & attributeList)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 5.8
+ virtual void subscribeInteractionClass
+ (rti1516::InteractionClassHandle theClass,
+ bool active = true)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::FederateServiceInvocationsAreBeingReportedViaMOM,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 5.9
+ virtual void unsubscribeInteractionClass
+ (rti1516::InteractionClassHandle theClass)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ ////////////////////////////////
+ // Object Management Services //
+ ////////////////////////////////
+
+ // 6.2
+ virtual void reserveObjectInstanceName
+ (std::wstring const & theObjectInstanceName)
+ throw (rti1516::IllegalName,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 6.4
+ virtual rti1516::ObjectInstanceHandle registerObjectInstance
+ (rti1516::ObjectClassHandle theClass)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::ObjectClassNotPublished,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual rti1516::ObjectInstanceHandle registerObjectInstance
+ (rti1516::ObjectClassHandle theClass,
+ std::wstring const & theObjectInstanceName)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::ObjectClassNotPublished,
+ rti1516::ObjectInstanceNameNotReserved,
+ rti1516::ObjectInstanceNameInUse,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 6.6
+ virtual void updateAttributeValues
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleValueMap const & theAttributeValues,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual rti1516::MessageRetractionHandle updateAttributeValues
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleValueMap const & theAttributeValues,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::LogicalTime const & theTime)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 6.8
+ virtual void sendInteraction
+ (rti1516::InteractionClassHandle theInteraction,
+ rti1516::ParameterHandleValueMap const & theParameterValues,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::InteractionClassNotPublished,
+ rti1516::InteractionClassNotDefined,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual rti1516::MessageRetractionHandle sendInteraction
+ (rti1516::InteractionClassHandle theInteraction,
+ rti1516::ParameterHandleValueMap const & theParameterValues,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::LogicalTime const & theTime)
+ throw (rti1516::InteractionClassNotPublished,
+ rti1516::InteractionClassNotDefined,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 6.10
+ virtual void deleteObjectInstance
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::DeletePrivilegeNotHeld,
+ rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual rti1516::MessageRetractionHandle deleteObjectInstance
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::LogicalTime const & theTime)
+ throw (rti1516::DeletePrivilegeNotHeld,
+ rti1516::ObjectInstanceNotKnown,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 6.12
+ virtual void localDeleteObjectInstance
+ (rti1516::ObjectInstanceHandle theObject)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateOwnsAttributes,
+ rti1516::OwnershipAcquisitionPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 6.13
+ virtual void changeAttributeTransportationType
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::TransportationType theType)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 6.14
+ virtual void changeInteractionTransportationType
+ (rti1516::InteractionClassHandle theClass,
+ rti1516::TransportationType theType)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::InteractionClassNotPublished,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 6.17
+ virtual void requestAttributeValueUpdate
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual void requestAttributeValueUpdate
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ ///////////////////////////////////
+ // Ownership Management Services //
+ ///////////////////////////////////
+ // 7.2
+ virtual void unconditionalAttributeOwnershipDivestiture
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.3
+ virtual void negotiatedAttributeOwnershipDivestiture
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::AttributeAlreadyBeingDivested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.6
+ virtual void confirmDivestiture
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & confirmedAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::AttributeDivestitureWasNotRequested,
+ rti1516::NoAcquisitionPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.8
+ virtual void attributeOwnershipAcquisition
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & desiredAttributes,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::ObjectClassNotPublished,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotPublished,
+ rti1516::FederateOwnsAttributes,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.9
+ virtual void attributeOwnershipAcquisitionIfAvailable
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & desiredAttributes)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::ObjectClassNotPublished,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotPublished,
+ rti1516::FederateOwnsAttributes,
+ rti1516::AttributeAlreadyBeingAcquired,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.12
+ virtual void attributeOwnershipDivestitureIfWanted
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::AttributeHandleSet & theDivestedAttributes) // filled by
RTI
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.13
+ virtual void cancelNegotiatedAttributeOwnershipDivestiture
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::AttributeDivestitureWasNotRequested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.14
+ virtual void cancelAttributeOwnershipAcquisition
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeAlreadyOwned,
+ rti1516::AttributeAcquisitionWasNotRequested,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.16
+ virtual void queryAttributeOwnership
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandle theAttribute)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 7.18
+ virtual bool isAttributeOwnedByFederate
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandle theAttribute)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ //////////////////////////////
+ // Time Management Services //
+ //////////////////////////////
+
+ // 8.2
+ virtual void enableTimeRegulation
+ (rti1516::LogicalTimeInterval const & theLookahead)
+ throw (rti1516::TimeRegulationAlreadyEnabled,
+ rti1516::InvalidLookahead,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.4
+ virtual void disableTimeRegulation ()
+ throw (rti1516::TimeRegulationIsNotEnabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.5
+ virtual void enableTimeConstrained ()
+ throw (rti1516::TimeConstrainedAlreadyEnabled,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.7
+ virtual void disableTimeConstrained ()
+ throw (rti1516::TimeConstrainedIsNotEnabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.8
+ virtual void timeAdvanceRequest
+ (rti1516::LogicalTime const & theTime)
+ throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.9
+ virtual void timeAdvanceRequestAvailable
+ (rti1516::LogicalTime const & theTime)
+ throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.10
+ virtual void nextMessageRequest
+ (rti1516::LogicalTime const & theTime)
+ throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.11
+ virtual void nextMessageRequestAvailable
+ (rti1516::LogicalTime const & theTime)
+ throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.12
+ virtual void flushQueueRequest
+ (rti1516::LogicalTime const & theTime)
+ throw (rti1516::InvalidLogicalTime,
+ rti1516::LogicalTimeAlreadyPassed,
+ rti1516::InTimeAdvancingState,
+ rti1516::RequestForTimeRegulationPending,
+ rti1516::RequestForTimeConstrainedPending,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.14
+ virtual void enableAsynchronousDelivery ()
+ throw (rti1516::AsynchronousDeliveryAlreadyEnabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.15
+ virtual void disableAsynchronousDelivery ()
+ throw (rti1516::AsynchronousDeliveryAlreadyDisabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.16
+ virtual bool queryGALT (rti1516::LogicalTime & theTime)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.17
+ virtual void queryLogicalTime (rti1516::LogicalTime & theTime)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.18
+ virtual bool queryLITS (rti1516::LogicalTime & theTime)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.19
+ virtual void modifyLookahead
+ (rti1516::LogicalTimeInterval const & theLookahead)
+ throw (rti1516::TimeRegulationIsNotEnabled,
+ rti1516::InvalidLookahead,
+ rti1516::InTimeAdvancingState,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.20
+ virtual void queryLookahead (rti1516::LogicalTimeInterval & interval)
+ throw (rti1516::TimeRegulationIsNotEnabled,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.21
+ virtual void retract
+ (rti1516::MessageRetractionHandle theHandle)
+ throw (rti1516::InvalidRetractionHandle,
+ rti1516::TimeRegulationIsNotEnabled,
+ rti1516::MessageCanNoLongerBeRetracted,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.23
+ virtual void changeAttributeOrderType
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSet const & theAttributes,
+ rti1516::OrderType theType)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotOwned,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 8.24
+ virtual void changeInteractionOrderType
+ (rti1516::InteractionClassHandle theClass,
+ rti1516::OrderType theType)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::InteractionClassNotPublished,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ //////////////////////////////////
+ // Data Distribution Management //
+ //////////////////////////////////
+
+ // 9.2
+ virtual rti1516::RegionHandle createRegion
+ (rti1516::DimensionHandleSet const & theDimensions)
+ throw (rti1516::InvalidDimensionHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.3
+ virtual void commitRegionModifications
+ (rti1516::RegionHandleSet const & theRegionHandleSet)
+ throw (rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.4
+ virtual void deleteRegion
+ (rti1516::RegionHandle theRegion)
+ throw (rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::RegionInUseForUpdateOrSubscription,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.5
+ virtual rti1516::ObjectInstanceHandle registerObjectInstanceWithRegions
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::ObjectClassNotPublished,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotPublished,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual rti1516::ObjectInstanceHandle registerObjectInstanceWithRegions
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector,
+ std::wstring const & theObjectInstanceName)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::ObjectClassNotPublished,
+ rti1516::AttributeNotDefined,
+ rti1516::AttributeNotPublished,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::ObjectInstanceNameNotReserved,
+ rti1516::ObjectInstanceNameInUse,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.6
+ virtual void associateRegionsForUpdates
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.7
+ virtual void unassociateRegionsForUpdates
+ (rti1516::ObjectInstanceHandle theObject,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::AttributeNotDefined,
+ rti1516:: InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.8
+ virtual void subscribeObjectClassAttributesWithRegions
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector,
+ bool active = true)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.9
+ virtual void unsubscribeObjectClassAttributesWithRegions
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
+ theAttributeHandleSetRegionHandleSetPairVector)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.10
+ virtual void subscribeInteractionClassWithRegions
+ (rti1516::InteractionClassHandle theClass,
+ rti1516::RegionHandleSet const & theRegionHandleSet,
+ bool active = true)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateServiceInvocationsAreBeingReportedViaMOM,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.11
+ virtual void unsubscribeInteractionClassWithRegions
+ (rti1516::InteractionClassHandle theClass,
+ rti1516::RegionHandleSet const & theRegionHandleSet)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.12
+ virtual void sendInteractionWithRegions
+ (rti1516::InteractionClassHandle theInteraction,
+ rti1516::ParameterHandleValueMap const & theParameterValues,
+ rti1516::RegionHandleSet const & theRegionHandleSet,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::InteractionClassNotPublished,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual rti1516::MessageRetractionHandle sendInteractionWithRegions
+ (rti1516::InteractionClassHandle theInteraction,
+ rti1516::ParameterHandleValueMap const & theParameterValues,
+ rti1516::RegionHandleSet const & theRegionHandleSet,
+ rti1516::VariableLengthData const & theUserSuppliedTag,
+ rti1516::LogicalTime const & theTime)
+ throw (rti1516::InteractionClassNotDefined,
+ rti1516::InteractionClassNotPublished,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::InvalidLogicalTime,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 9.13
+ virtual void requestAttributeValueUpdateWithRegions
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandleSetRegionHandleSetPairVector const &
theSet,
+ rti1516::VariableLengthData const & theUserSuppliedTag)
+ throw (rti1516::ObjectClassNotDefined,
+ rti1516::AttributeNotDefined,
+ rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::InvalidRegionContext,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ //////////////////////////
+ // RTI Support Services //
+ //////////////////////////
+
+ // 10.2
+ virtual rti1516::ObjectClassHandle getObjectClassHandle
+ (std::wstring const & theName)
+ throw (rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.3
+ virtual std::wstring getObjectClassName
+ (rti1516::ObjectClassHandle theHandle)
+ throw (rti1516::InvalidObjectClassHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.4
+ virtual rti1516::AttributeHandle getAttributeHandle
+ (rti1516::ObjectClassHandle whichClass,
+ std::wstring const & theAttributeName)
+ throw (rti1516::InvalidObjectClassHandle,
+ rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.5
+ virtual std::wstring getAttributeName
+ (rti1516::ObjectClassHandle whichClass,
+ rti1516::AttributeHandle theHandle)
+ throw (rti1516::InvalidObjectClassHandle,
+ rti1516::InvalidAttributeHandle,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.6
+ virtual rti1516::InteractionClassHandle getInteractionClassHandle
+ (std::wstring const & theName)
+ throw (rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.7
+ virtual std::wstring getInteractionClassName
+ (rti1516::InteractionClassHandle theHandle)
+ throw (rti1516::InvalidInteractionClassHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.8
+ virtual rti1516::ParameterHandle getParameterHandle
+ (rti1516::InteractionClassHandle whichClass,
+ std::wstring const & theName)
+ throw (rti1516::InvalidInteractionClassHandle,
+ rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.9
+ virtual std::wstring getParameterName
+ (rti1516::InteractionClassHandle whichClass,
+ rti1516::ParameterHandle theHandle)
+ throw (rti1516::InvalidInteractionClassHandle,
+ rti1516::InvalidParameterHandle,
+ rti1516::InteractionParameterNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.10
+ virtual rti1516::ObjectInstanceHandle getObjectInstanceHandle
+ (std::wstring const & theName)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.11
+ virtual std::wstring getObjectInstanceName
+ (rti1516::ObjectInstanceHandle theHandle)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.12
+ virtual rti1516::DimensionHandle getDimensionHandle
+ (std::wstring const & theName)
+ throw (rti1516::NameNotFound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.13
+ virtual std::wstring getDimensionName
+ (rti1516::DimensionHandle theHandle)
+ throw (rti1516::InvalidDimensionHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.14
+ virtual unsigned long getDimensionUpperBound
+ (rti1516::DimensionHandle theHandle)
+ throw (rti1516::InvalidDimensionHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.15
+ virtual rti1516::DimensionHandleSet getAvailableDimensionsForClassAttribute
+ (rti1516::ObjectClassHandle theClass,
+ rti1516::AttributeHandle theHandle)
+ throw (rti1516::InvalidObjectClassHandle,
+ rti1516::InvalidAttributeHandle,
+ rti1516::AttributeNotDefined,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.16
+ virtual rti1516::ObjectClassHandle getKnownObjectClassHandle
+ (rti1516::ObjectInstanceHandle theObject)
+ throw (rti1516::ObjectInstanceNotKnown,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.17
+ virtual rti1516::DimensionHandleSet
getAvailableDimensionsForInteractionClass
+ (rti1516::InteractionClassHandle theClass)
+ throw (rti1516::InvalidInteractionClassHandle,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.18
+ virtual rti1516::TransportationType getTransportationType
+ (std::wstring const & transportationName)
+ throw (rti1516::InvalidTransportationName,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.19
+ virtual std::wstring getTransportationName
+ (rti1516::TransportationType transportationType)
+ throw (rti1516::InvalidTransportationType,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.20
+ virtual rti1516::OrderType getOrderType
+ (std::wstring const & orderName)
+ throw (rti1516::InvalidOrderName,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.21
+ virtual std::wstring getOrderName
+ (rti1516::OrderType orderType)
+ throw (rti1516::InvalidOrderType,
+ rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.22
+ virtual void enableObjectClassRelevanceAdvisorySwitch ()
+ throw (rti1516::ObjectClassRelevanceAdvisorySwitchIsOn,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.23
+ virtual void disableObjectClassRelevanceAdvisorySwitch ()
+ throw (rti1516::ObjectClassRelevanceAdvisorySwitchIsOff,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.24
+ virtual void enableAttributeRelevanceAdvisorySwitch ()
+ throw (rti1516::AttributeRelevanceAdvisorySwitchIsOn,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.25
+ virtual void disableAttributeRelevanceAdvisorySwitch ()
+ throw (rti1516::AttributeRelevanceAdvisorySwitchIsOff,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.26
+ virtual void enableAttributeScopeAdvisorySwitch ()
+ throw (rti1516::AttributeScopeAdvisorySwitchIsOn,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.27
+ virtual void disableAttributeScopeAdvisorySwitch ()
+ throw (rti1516::AttributeScopeAdvisorySwitchIsOff,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.28
+ virtual void enableInteractionRelevanceAdvisorySwitch ()
+ throw (rti1516::InteractionRelevanceAdvisorySwitchIsOn,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.29
+ virtual void disableInteractionRelevanceAdvisorySwitch ()
+ throw (rti1516::InteractionRelevanceAdvisorySwitchIsOff,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.30
+ virtual
+ rti1516::DimensionHandleSet getDimensionHandleSet
+ (rti1516::RegionHandle theRegionHandle)
+ throw (rti1516::InvalidRegion,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.31
+ virtual
+ rti1516::RangeBounds getRangeBounds
+ (rti1516::RegionHandle theRegionHandle,
+ rti1516::DimensionHandle theDimensionHandle)
+ throw (rti1516::InvalidRegion,
+ rti1516::RegionDoesNotContainSpecifiedDimension,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.32
+ virtual void setRangeBounds
+ (rti1516::RegionHandle theRegionHandle,
+ rti1516::DimensionHandle theDimensionHandle,
+ rti1516::RangeBounds const & theRangeBounds)
+ throw (rti1516::InvalidRegion,
+ rti1516::RegionNotCreatedByThisFederate,
+ rti1516::RegionDoesNotContainSpecifiedDimension,
+ rti1516::InvalidRangeBound,
+ rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.33
+ virtual unsigned long normalizeFederateHandle
+ (rti1516::FederateHandle theFederateHandle)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::InvalidFederateHandle,
+ rti1516::RTIinternalError);
+
+ // 10.34
+ virtual unsigned long normalizeServiceGroup
+ (rti1516::ServiceGroupIndicator theServiceGroup)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::InvalidServiceGroup,
+ rti1516::RTIinternalError);
+
+ // 10.37
+ virtual bool evokeCallback(double approximateMinimumTimeInSeconds)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.38
+ virtual bool evokeMultipleCallbacks(double approximateMinimumTimeInSeconds,
+ double approximateMaximumTimeInSeconds)
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::RTIinternalError);
+
+ // 10.39
+ virtual void enableCallbacks ()
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ // 10.40
+ virtual void disableCallbacks ()
+ throw (rti1516::FederateNotExecutionMember,
+ rti1516::SaveInProgress,
+ rti1516::RestoreInProgress,
+ rti1516::RTIinternalError);
+
+ virtual rti1516::FederateHandle decodeFederateHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+ virtual rti1516::ObjectClassHandle decodeObjectClassHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+ virtual rti1516::InteractionClassHandle decodeInteractionClassHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+ virtual rti1516::ObjectInstanceHandle decodeObjectInstanceHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+ virtual rti1516::AttributeHandle decodeAttributeHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+ virtual rti1516::ParameterHandle decodeParameterHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+ virtual rti1516::DimensionHandle decodeDimensionHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+ virtual rti1516::MessageRetractionHandle decodeMessageRetractionHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+ virtual rti1516::RegionHandle decodeRegionHandle(
+ rti1516::VariableLengthData const & encodedValue) const;
+
+};
+}
+
+#endif // RTI_RTI1516ambassador_h
Index: RTIambassador.h
===================================================================
RCS file: RTIambassador.h
diff -N RTIambassador.h
--- RTIambassador.h 3 Mar 2014 16:41:48 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,1340 +0,0 @@
-// ----------------------------------------------------------------------------
-// CERTI - HLA RunTime Infrastructure
-// Copyright (C) 2002-2014 ONERA
-//
-// This file is part of CERTI-libRTI
-//
-// CERTI-libRTI is free software ; you can redistribute it and/or
-// modify it under the terms of the GNU Lesser General Public License
-// as published by the Free Software Foundation ; either version 2 of
-// the License, or (at your option) any later version.
-//
-// CERTI-libRTI is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY ; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this program ; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
-// USA
-//
-// ----------------------------------------------------------------------------
-// This interface is used to access the services of the RTI.
-
-#ifndef RTIambassador_h
-#define RTIambassador_h
-
-#include <RTI/RTIambassador.h>
-#include <RTI/RTIambassadorFactory.h>
-#include "RTIambPrivateRefs.h"
-
-namespace rti1516
-{
- class RTI_EXPORT RTI1516ambassador : RTIambassador
- {
- friend std::auto_ptr< RTIambassador >
- RTIambassadorFactory::createRTIambassador(std::vector<
std::wstring > & args)
- throw (BadInitializationParameter, RTIinternalError);
-
- private:
- RTI1516ambPrivateRefs* privateRefs ;
-
- // Helper functions
- template<typename T> void
- assignAHSAndExecuteService(const
rti1516::AttributeHandleSet &AHS, T &req, T &rep);
- template<typename T> void
- assignPHVMAndExecuteService(const
rti1516::ParameterHandleValueMap &PHVM, T &req, T &rep);
- template<typename T> void
- assignAHVMAndExecuteService(const
rti1516::AttributeHandleValueMap &AHVM, T &req, T &rep);
- // Helper function for CallBacks
- bool __tick_kernel(bool, TickTime, TickTime)
- throw (SpecifiedSaveLabelDoesNotExist,
RTIinternalError);
-
- protected:
- RTI1516ambassador()
- throw ();
-
- public:
- virtual
- ~RTI1516ambassador();
- // throw ()
-
- // 4.2
- virtual void createFederationExecution
- (std::wstring const & federationExecutionName,
- std::wstring const & fullPathNameToTheFDDfile,
- std::wstring const & logicalTimeImplementationName =
L"")
- throw (FederationExecutionAlreadyExists,
- CouldNotOpenFDD,
- ErrorReadingFDD,
- CouldNotCreateLogicalTimeFactory,
- RTIinternalError);
-
- // 4.3
- virtual void destroyFederationExecution
- (std::wstring const & federationExecutionName)
- throw (FederatesCurrentlyJoined,
- FederationExecutionDoesNotExist,
- RTIinternalError);
-
- // 4.4
- virtual FederateHandle joinFederationExecution
- (std::wstring const & federateType,
- std::wstring const & federationExecutionName,
- FederateAmbassador & federateAmbassador)
- throw (FederateAlreadyExecutionMember,
- FederationExecutionDoesNotExist,
- SaveInProgress,
- RestoreInProgress,
- CouldNotCreateLogicalTimeFactory,
- RTIinternalError);
-
- // 4.5
- virtual void resignFederationExecution
- (ResignAction resignAction)
- throw (OwnershipAcquisitionPending,
- FederateOwnsAttributes,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 4.6
- virtual void registerFederationSynchronizationPoint
- (std::wstring const & label,
- VariableLengthData const & theUserSuppliedTag)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual void registerFederationSynchronizationPoint
- (std::wstring const & label,
- VariableLengthData const & theUserSuppliedTag,
- FederateHandleSet const & syncSet)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 4.9
- virtual void synchronizationPointAchieved
- (std::wstring const & label)
- throw (SynchronizationPointLabelNotAnnounced,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 4.11
- virtual void requestFederationSave
- (std::wstring const & label)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual void requestFederationSave
- (std::wstring const & label,
- LogicalTime const & theTime)
- throw (LogicalTimeAlreadyPassed,
- InvalidLogicalTime,
- FederateUnableToUseTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 4.13
- virtual void federateSaveBegun ()
- throw (SaveNotInitiated,
- FederateNotExecutionMember,
- RestoreInProgress,
- RTIinternalError);
-
- // 4.14
- virtual void federateSaveComplete ()
- throw (FederateHasNotBegunSave,
- FederateNotExecutionMember,
- RestoreInProgress,
- RTIinternalError);
-
- virtual void federateSaveNotComplete()
- throw (FederateHasNotBegunSave,
- FederateNotExecutionMember,
- RestoreInProgress,
- RTIinternalError);
-
- // 4.16
- virtual void queryFederationSaveStatus ()
- throw (FederateNotExecutionMember,
- RestoreInProgress,
- RTIinternalError);
-
- // 4.18
- virtual void requestFederationRestore
- (std::wstring const & label)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 4.22
- virtual void federateRestoreComplete ()
- throw (RestoreNotRequested,
- FederateNotExecutionMember,
- SaveInProgress,
- RTIinternalError);
-
- virtual void federateRestoreNotComplete ()
- throw (RestoreNotRequested,
- FederateNotExecutionMember,
- SaveInProgress,
- RTIinternalError);
-
- // 4.24
- virtual void queryFederationRestoreStatus ()
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RTIinternalError);
-
- /////////////////////////////////////
- // Declaration Management Services //
- /////////////////////////////////////
-
- // 5.2
- virtual void publishObjectClassAttributes
- (ObjectClassHandle theClass,
- AttributeHandleSet const & attributeList)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 5.3
- virtual void unpublishObjectClass
- (ObjectClassHandle theClass)
- throw (ObjectClassNotDefined,
- OwnershipAcquisitionPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual void unpublishObjectClassAttributes
- (ObjectClassHandle theClass,
- AttributeHandleSet const & attributeList)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- OwnershipAcquisitionPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 5.4
- virtual void publishInteractionClass
- (InteractionClassHandle theInteraction)
- throw (InteractionClassNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 5.5
- virtual void unpublishInteractionClass
- (InteractionClassHandle theInteraction)
- throw (InteractionClassNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 5.6
- virtual void subscribeObjectClassAttributes
- (ObjectClassHandle theClass,
- AttributeHandleSet const & attributeList,
- bool active = true)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 5.7
- virtual void unsubscribeObjectClass
- (ObjectClassHandle theClass)
- throw (ObjectClassNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual void unsubscribeObjectClassAttributes
- (ObjectClassHandle theClass,
- AttributeHandleSet const & attributeList)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 5.8
- virtual void subscribeInteractionClass
- (InteractionClassHandle theClass,
- bool active = true)
- throw (InteractionClassNotDefined,
- FederateServiceInvocationsAreBeingReportedViaMOM,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 5.9
- virtual void unsubscribeInteractionClass
- (InteractionClassHandle theClass)
- throw (InteractionClassNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- ////////////////////////////////
- // Object Management Services //
- ////////////////////////////////
-
- // 6.2
- virtual void reserveObjectInstanceName
- (std::wstring const & theObjectInstanceName)
- throw (IllegalName,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 6.4
- virtual ObjectInstanceHandle registerObjectInstance
- (ObjectClassHandle theClass)
- throw (ObjectClassNotDefined,
- ObjectClassNotPublished,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual ObjectInstanceHandle registerObjectInstance
- (ObjectClassHandle theClass,
- std::wstring const & theObjectInstanceName)
- throw (ObjectClassNotDefined,
- ObjectClassNotPublished,
- ObjectInstanceNameNotReserved,
- ObjectInstanceNameInUse,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 6.6
- virtual void updateAttributeValues
- (ObjectInstanceHandle theObject,
- AttributeHandleValueMap const & theAttributeValues,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual MessageRetractionHandle updateAttributeValues
- (ObjectInstanceHandle theObject,
- AttributeHandleValueMap const & theAttributeValues,
- VariableLengthData const & theUserSuppliedTag,
- LogicalTime const & theTime)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- InvalidLogicalTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 6.8
- virtual void sendInteraction
- (InteractionClassHandle theInteraction,
- ParameterHandleValueMap const & theParameterValues,
- VariableLengthData const & theUserSuppliedTag)
- throw (InteractionClassNotPublished,
- InteractionClassNotDefined,
- InteractionParameterNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual MessageRetractionHandle sendInteraction
- (InteractionClassHandle theInteraction,
- ParameterHandleValueMap const & theParameterValues,
- VariableLengthData const & theUserSuppliedTag,
- LogicalTime const & theTime)
- throw (InteractionClassNotPublished,
- InteractionClassNotDefined,
- InteractionParameterNotDefined,
- InvalidLogicalTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 6.10
- virtual void deleteObjectInstance
- (ObjectInstanceHandle theObject,
- VariableLengthData const & theUserSuppliedTag)
- throw (DeletePrivilegeNotHeld,
- ObjectInstanceNotKnown,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual MessageRetractionHandle deleteObjectInstance
- (ObjectInstanceHandle theObject,
- VariableLengthData const & theUserSuppliedTag,
- LogicalTime const & theTime)
- throw (DeletePrivilegeNotHeld,
- ObjectInstanceNotKnown,
- InvalidLogicalTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 6.12
- virtual void localDeleteObjectInstance
- (ObjectInstanceHandle theObject)
- throw (ObjectInstanceNotKnown,
- FederateOwnsAttributes,
- OwnershipAcquisitionPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 6.13
- virtual void changeAttributeTransportationType
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- TransportationType theType)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 6.14
- virtual void changeInteractionTransportationType
- (InteractionClassHandle theClass,
- TransportationType theType)
- throw (InteractionClassNotDefined,
- InteractionClassNotPublished,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 6.17
- virtual void requestAttributeValueUpdate
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual void requestAttributeValueUpdate
- (ObjectClassHandle theClass,
- AttributeHandleSet const & theAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- ///////////////////////////////////
- // Ownership Management Services //
- ///////////////////////////////////
- // 7.2
- virtual void unconditionalAttributeOwnershipDivestiture
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.3
- virtual void negotiatedAttributeOwnershipDivestiture
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- AttributeAlreadyBeingDivested,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.6
- virtual void confirmDivestiture
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & confirmedAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- AttributeDivestitureWasNotRequested,
- NoAcquisitionPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.8
- virtual void attributeOwnershipAcquisition
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & desiredAttributes,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectInstanceNotKnown,
- ObjectClassNotPublished,
- AttributeNotDefined,
- AttributeNotPublished,
- FederateOwnsAttributes,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.9
- virtual void attributeOwnershipAcquisitionIfAvailable
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & desiredAttributes)
- throw (ObjectInstanceNotKnown,
- ObjectClassNotPublished,
- AttributeNotDefined,
- AttributeNotPublished,
- FederateOwnsAttributes,
- AttributeAlreadyBeingAcquired,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.12
- virtual void attributeOwnershipDivestitureIfWanted
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- AttributeHandleSet & theDivestedAttributes) // filled
by RTI
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.13
- virtual void cancelNegotiatedAttributeOwnershipDivestiture
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- AttributeDivestitureWasNotRequested,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.14
- virtual void cancelAttributeOwnershipAcquisition
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeAlreadyOwned,
- AttributeAcquisitionWasNotRequested,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.16
- virtual void queryAttributeOwnership
- (ObjectInstanceHandle theObject,
- AttributeHandle theAttribute)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 7.18
- virtual bool isAttributeOwnedByFederate
- (ObjectInstanceHandle theObject,
- AttributeHandle theAttribute)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- //////////////////////////////
- // Time Management Services //
- //////////////////////////////
-
- // 8.2
- virtual void enableTimeRegulation
- (LogicalTimeInterval const & theLookahead)
- throw (TimeRegulationAlreadyEnabled,
- InvalidLookahead,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.4
- virtual void disableTimeRegulation ()
- throw (TimeRegulationIsNotEnabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.5
- virtual void enableTimeConstrained ()
- throw (TimeConstrainedAlreadyEnabled,
- InTimeAdvancingState,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.7
- virtual void disableTimeConstrained ()
- throw (TimeConstrainedIsNotEnabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.8
- virtual void timeAdvanceRequest
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.9
- virtual void timeAdvanceRequestAvailable
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.10
- virtual void nextMessageRequest
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.11
- virtual void nextMessageRequestAvailable
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.12
- virtual void flushQueueRequest
- (LogicalTime const & theTime)
- throw (InvalidLogicalTime,
- LogicalTimeAlreadyPassed,
- InTimeAdvancingState,
- RequestForTimeRegulationPending,
- RequestForTimeConstrainedPending,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.14
- virtual void enableAsynchronousDelivery ()
- throw (AsynchronousDeliveryAlreadyEnabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.15
- virtual void disableAsynchronousDelivery ()
- throw (AsynchronousDeliveryAlreadyDisabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.16
- virtual bool queryGALT (LogicalTime & theTime)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.17
- virtual void queryLogicalTime (LogicalTime & theTime)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.18
- virtual bool queryLITS (LogicalTime & theTime)
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.19
- virtual void modifyLookahead
- (LogicalTimeInterval const & theLookahead)
- throw (TimeRegulationIsNotEnabled,
- InvalidLookahead,
- InTimeAdvancingState,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.20
- virtual void queryLookahead (LogicalTimeInterval & interval)
- throw (TimeRegulationIsNotEnabled,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.21
- virtual void retract
- (MessageRetractionHandle theHandle)
- throw (InvalidRetractionHandle,
- TimeRegulationIsNotEnabled,
- MessageCanNoLongerBeRetracted,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.23
- virtual void changeAttributeOrderType
- (ObjectInstanceHandle theObject,
- AttributeHandleSet const & theAttributes,
- OrderType theType)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- AttributeNotOwned,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 8.24
- virtual void changeInteractionOrderType
- (InteractionClassHandle theClass,
- OrderType theType)
- throw (InteractionClassNotDefined,
- InteractionClassNotPublished,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- //////////////////////////////////
- // Data Distribution Management //
- //////////////////////////////////
-
- // 9.2
- virtual RegionHandle createRegion
- (DimensionHandleSet const & theDimensions)
- throw (InvalidDimensionHandle,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.3
- virtual void commitRegionModifications
- (RegionHandleSet const & theRegionHandleSet)
- throw (InvalidRegion,
- RegionNotCreatedByThisFederate,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.4
- virtual void deleteRegion
- (RegionHandle theRegion)
- throw (InvalidRegion,
- RegionNotCreatedByThisFederate,
- RegionInUseForUpdateOrSubscription,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.5
- virtual ObjectInstanceHandle registerObjectInstanceWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector)
- throw (ObjectClassNotDefined,
- ObjectClassNotPublished,
- AttributeNotDefined,
- AttributeNotPublished,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual ObjectInstanceHandle registerObjectInstanceWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector,
- std::wstring const & theObjectInstanceName)
- throw (ObjectClassNotDefined,
- ObjectClassNotPublished,
- AttributeNotDefined,
- AttributeNotPublished,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- ObjectInstanceNameNotReserved,
- ObjectInstanceNameInUse,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.6
- virtual void associateRegionsForUpdates
- (ObjectInstanceHandle theObject,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.7
- virtual void unassociateRegionsForUpdates
- (ObjectInstanceHandle theObject,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector)
- throw (ObjectInstanceNotKnown,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.8
- virtual void subscribeObjectClassAttributesWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector,
- bool active = true)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.9
- virtual void unsubscribeObjectClassAttributesWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
- theAttributeHandleSetRegionHandleSetPairVector)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.10
- virtual void subscribeInteractionClassWithRegions
- (InteractionClassHandle theClass,
- RegionHandleSet const & theRegionHandleSet,
- bool active = true)
- throw (InteractionClassNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateServiceInvocationsAreBeingReportedViaMOM,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.11
- virtual void unsubscribeInteractionClassWithRegions
- (InteractionClassHandle theClass,
- RegionHandleSet const & theRegionHandleSet)
- throw (InteractionClassNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.12
- virtual void sendInteractionWithRegions
- (InteractionClassHandle theInteraction,
- ParameterHandleValueMap const & theParameterValues,
- RegionHandleSet const & theRegionHandleSet,
- VariableLengthData const & theUserSuppliedTag)
- throw (InteractionClassNotDefined,
- InteractionClassNotPublished,
- InteractionParameterNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual MessageRetractionHandle sendInteractionWithRegions
- (InteractionClassHandle theInteraction,
- ParameterHandleValueMap const & theParameterValues,
- RegionHandleSet const & theRegionHandleSet,
- VariableLengthData const & theUserSuppliedTag,
- LogicalTime const & theTime)
- throw (InteractionClassNotDefined,
- InteractionClassNotPublished,
- InteractionParameterNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- InvalidLogicalTime,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 9.13
- virtual void requestAttributeValueUpdateWithRegions
- (ObjectClassHandle theClass,
- AttributeHandleSetRegionHandleSetPairVector const &
theSet,
- VariableLengthData const & theUserSuppliedTag)
- throw (ObjectClassNotDefined,
- AttributeNotDefined,
- InvalidRegion,
- RegionNotCreatedByThisFederate,
- InvalidRegionContext,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- //////////////////////////
- // RTI Support Services //
- //////////////////////////
-
- // 10.2
- virtual ObjectClassHandle getObjectClassHandle
- (std::wstring const & theName)
- throw (NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.3
- virtual std::wstring getObjectClassName
- (ObjectClassHandle theHandle)
- throw (InvalidObjectClassHandle,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.4
- virtual AttributeHandle getAttributeHandle
- (ObjectClassHandle whichClass,
- std::wstring const & theAttributeName)
- throw (InvalidObjectClassHandle,
- NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.5
- virtual std::wstring getAttributeName
- (ObjectClassHandle whichClass,
- AttributeHandle theHandle)
- throw (InvalidObjectClassHandle,
- InvalidAttributeHandle,
- AttributeNotDefined,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.6
- virtual InteractionClassHandle getInteractionClassHandle
- (std::wstring const & theName)
- throw (NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.7
- virtual std::wstring getInteractionClassName
- (InteractionClassHandle theHandle)
- throw (InvalidInteractionClassHandle,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.8
- virtual ParameterHandle getParameterHandle
- (InteractionClassHandle whichClass,
- std::wstring const & theName)
- throw (InvalidInteractionClassHandle,
- NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.9
- virtual std::wstring getParameterName
- (InteractionClassHandle whichClass,
- ParameterHandle theHandle)
- throw (InvalidInteractionClassHandle,
- InvalidParameterHandle,
- InteractionParameterNotDefined,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.10
- virtual ObjectInstanceHandle getObjectInstanceHandle
- (std::wstring const & theName)
- throw (ObjectInstanceNotKnown,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.11
- virtual std::wstring getObjectInstanceName
- (ObjectInstanceHandle theHandle)
- throw (ObjectInstanceNotKnown,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.12
- virtual DimensionHandle getDimensionHandle
- (std::wstring const & theName)
- throw (NameNotFound,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.13
- virtual std::wstring getDimensionName
- (DimensionHandle theHandle)
- throw (InvalidDimensionHandle,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.14
- virtual unsigned long getDimensionUpperBound
- (DimensionHandle theHandle)
- throw (InvalidDimensionHandle,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.15
- virtual DimensionHandleSet
getAvailableDimensionsForClassAttribute
- (ObjectClassHandle theClass,
- AttributeHandle theHandle)
- throw (InvalidObjectClassHandle,
- InvalidAttributeHandle,
- AttributeNotDefined,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.16
- virtual ObjectClassHandle getKnownObjectClassHandle
- (ObjectInstanceHandle theObject)
- throw (ObjectInstanceNotKnown,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.17
- virtual DimensionHandleSet
getAvailableDimensionsForInteractionClass
- (InteractionClassHandle theClass)
- throw (InvalidInteractionClassHandle,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.18
- virtual TransportationType getTransportationType
- (std::wstring const & transportationName)
- throw (InvalidTransportationName,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.19
- virtual std::wstring getTransportationName
- (TransportationType transportationType)
- throw (InvalidTransportationType,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.20
- virtual OrderType getOrderType
- (std::wstring const & orderName)
- throw (InvalidOrderName,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.21
- virtual std::wstring getOrderName
- (OrderType orderType)
- throw (InvalidOrderType,
- FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.22
- virtual void enableObjectClassRelevanceAdvisorySwitch ()
- throw (ObjectClassRelevanceAdvisorySwitchIsOn,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.23
- virtual void disableObjectClassRelevanceAdvisorySwitch ()
- throw (ObjectClassRelevanceAdvisorySwitchIsOff,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.24
- virtual void enableAttributeRelevanceAdvisorySwitch ()
- throw (AttributeRelevanceAdvisorySwitchIsOn,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.25
- virtual void disableAttributeRelevanceAdvisorySwitch ()
- throw (AttributeRelevanceAdvisorySwitchIsOff,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.26
- virtual void enableAttributeScopeAdvisorySwitch ()
- throw (AttributeScopeAdvisorySwitchIsOn,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.27
- virtual void disableAttributeScopeAdvisorySwitch ()
- throw (AttributeScopeAdvisorySwitchIsOff,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.28
- virtual void enableInteractionRelevanceAdvisorySwitch ()
- throw (InteractionRelevanceAdvisorySwitchIsOn,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.29
- virtual void disableInteractionRelevanceAdvisorySwitch ()
- throw (InteractionRelevanceAdvisorySwitchIsOff,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.30
- virtual
- DimensionHandleSet getDimensionHandleSet
- (RegionHandle theRegionHandle)
- throw (InvalidRegion,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.31
- virtual
- RangeBounds getRangeBounds
- (RegionHandle theRegionHandle,
- DimensionHandle theDimensionHandle)
- throw (InvalidRegion,
- RegionDoesNotContainSpecifiedDimension,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.32
- virtual void setRangeBounds
- (RegionHandle theRegionHandle,
- DimensionHandle theDimensionHandle,
- RangeBounds const & theRangeBounds)
- throw (InvalidRegion,
- RegionNotCreatedByThisFederate,
- RegionDoesNotContainSpecifiedDimension,
- InvalidRangeBound,
- FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.33
- virtual unsigned long normalizeFederateHandle
- (FederateHandle theFederateHandle)
- throw (FederateNotExecutionMember,
- InvalidFederateHandle,
- RTIinternalError);
-
- // 10.34
- virtual unsigned long normalizeServiceGroup
- (ServiceGroupIndicator theServiceGroup)
- throw (FederateNotExecutionMember,
- InvalidServiceGroup,
- RTIinternalError);
-
- // 10.37
- virtual bool evokeCallback(double
approximateMinimumTimeInSeconds)
- throw (FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.38
- virtual bool evokeMultipleCallbacks(double
approximateMinimumTimeInSeconds,
- double approximateMaximumTimeInSeconds)
- throw (FederateNotExecutionMember,
- RTIinternalError);
-
- // 10.39
- virtual void enableCallbacks ()
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- // 10.40
- virtual void disableCallbacks ()
- throw (FederateNotExecutionMember,
- SaveInProgress,
- RestoreInProgress,
- RTIinternalError);
-
- virtual FederateHandle decodeFederateHandle(
- VariableLengthData const & encodedValue) const;
-
- virtual ObjectClassHandle decodeObjectClassHandle(
- VariableLengthData const & encodedValue) const;
-
- virtual InteractionClassHandle decodeInteractionClassHandle(
- VariableLengthData const & encodedValue) const;
-
- virtual ObjectInstanceHandle decodeObjectInstanceHandle(
- VariableLengthData const & encodedValue) const;
-
- virtual AttributeHandle decodeAttributeHandle(
- VariableLengthData const & encodedValue) const;
-
- virtual ParameterHandle decodeParameterHandle(
- VariableLengthData const & encodedValue) const;
-
- virtual DimensionHandle decodeDimensionHandle(
- VariableLengthData const & encodedValue) const;
-
- virtual MessageRetractionHandle decodeMessageRetractionHandle(
- VariableLengthData const & encodedValue) const;
-
- virtual RegionHandle decodeRegionHandle(
- VariableLengthData const & encodedValue) const;
-
- };
-}
-
-#endif // RTI_RTI1516ambassador_h
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi/libRTI/ieee1516-2000 RTIambassadorFactory...,
CERTI CVS commits <=