[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] applications/PyHLA .cvsignore doc/.cvsignore do...
From: |
certi-cvs |
Subject: |
[certi-cvs] applications/PyHLA .cvsignore doc/.cvsignore do... |
Date: |
Thu, 09 Oct 2008 16:50:59 +0000 |
CVSROOT: /sources/certi
Module name: applications
Changes by: Petr Gotthard <gotthardp> 08/10/09 16:50:58
Modified files:
PyHLA : .cvsignore
PyHLA/doc : .cvsignore PyHLA.tex
PyHLA/doc/rti : rtiambassador.tex
PyHLA/hla/_rti : handles.cpp handles.h module.h
rtiambassador.cpp
Log message:
Final commit. All RTI Ambassador services are now implemented.
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/applications/PyHLA/.cvsignore?cvsroot=certi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/applications/PyHLA/doc/.cvsignore?cvsroot=certi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/applications/PyHLA/doc/PyHLA.tex?cvsroot=certi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/applications/PyHLA/doc/rti/rtiambassador.tex?cvsroot=certi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/applications/PyHLA/hla/_rti/handles.cpp?cvsroot=certi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/applications/PyHLA/hla/_rti/handles.h?cvsroot=certi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/applications/PyHLA/hla/_rti/module.h?cvsroot=certi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/applications/PyHLA/hla/_rti/rtiambassador.cpp?cvsroot=certi&r1=1.2&r2=1.3
Patches:
Index: .cvsignore
===================================================================
RCS file: /sources/certi/applications/PyHLA/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- .cvsignore 25 Sep 2008 17:17:26 -0000 1.1
+++ .cvsignore 9 Oct 2008 16:50:58 -0000 1.2
@@ -1,5 +1,12 @@
Makefile
CMakeFiles
+_CPack_Packages
cmake_install.cmake
+install_manifest*.txt
CMakeCache.txt
+CPackConfig.cmake
+CPackSourceConfig.cmake
*.pyc
+*.rpm
+*.zip
+*.gz
Index: doc/.cvsignore
===================================================================
RCS file: /sources/certi/applications/PyHLA/doc/.cvsignore,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- doc/.cvsignore 30 Sep 2008 12:44:13 -0000 1.1
+++ doc/.cvsignore 9 Oct 2008 16:50:58 -0000 1.2
@@ -1,4 +1,5 @@
Makefile
CMakeFiles
cmake_install.cmake
+PyHLA.dvi
PyHLA.pdf
Index: doc/PyHLA.tex
===================================================================
RCS file: /sources/certi/applications/PyHLA/doc/PyHLA.tex,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- doc/PyHLA.tex 3 Oct 2008 15:28:16 -0000 1.4
+++ doc/PyHLA.tex 9 Oct 2008 16:50:58 -0000 1.5
@@ -1,10 +1,29 @@
-\documentclass{howto}
+\documentclass[12pt,a4paper]{howto}
+% Download msc.sty from http://satoss.uni.lu/mscpackage
+\usepackage{msc}
+
+\newenvironment{hlamsc}[1]{
+\begin{figure}[h]
+\centering
+\pagecolor{white}
+\begin{msc}{#1}
+\drawframe{no}
+\setmscvalues{small}
+\setlength{\instdist}{4.5cm}
+\setlength{\bottomfootdist}{0cm}
+}{
+\end{msc}
+\textcolor{white}{.} % workaround for the msc.sty clipping error
+\end{figure}
+}
\title{Using M\&S HLA in Python}
\release{0.1}
\author{Petr Gotthard}
address@hidden
+\authoraddress{petr.gotthard at centrum.cz}
+
+\makeindex
\begin{document}
\maketitle
@@ -172,6 +191,7 @@
self.discoveredEntities[name] = MyAircraft()
\end{verbatim}
+\input{PyHLA.ind}
\end{document}
-% $Id: PyHLA.tex,v 1.4 2008/10/03 15:28:16 gotthardp Exp $
+% $Id: PyHLA.tex,v 1.5 2008/10/09 16:50:58 gotthardp Exp $
Index: doc/rti/rtiambassador.tex
===================================================================
RCS file: /sources/certi/applications/PyHLA/doc/rti/rtiambassador.tex,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- doc/rti/rtiambassador.tex 2 Oct 2008 10:04:36 -0000 1.3
+++ doc/rti/rtiambassador.tex 9 Oct 2008 16:50:58 -0000 1.4
@@ -8,8 +8,32 @@
rtia.joinFederationExecution("python-01", "MyFederation", fed)
\end{verbatim}
-\medskip
-\strong{Federation Management Services}
+\begin{hlamsc}{Federation Management}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{createFederationExecution}{m1}{m2}
+\nextlevel
+\mess{joinFederationExecution}{m1}{m2}
+\nextlevel
+\mess{joinFederationExecution}{m3}{m2}
+\nextlevel
+\inlinestart{e1}{seq}{m1}{m3}
+\nextlevel
+\mess{tick}{m3}{m2}
+\nextlevel
+\mess{tick}{m1}{m2}
+\nextlevel
+\inlineend{e1}
+\nextlevel
+\mess{resignFederationExecution}{m3}{m2}
+\nextlevel
+\mess{resignFederationExecution}{m1}{m2}
+\nextlevel
+\mess{destroyFederationExecution}{m1}{m2}
+\nextlevel
+\end{hlamsc}
\begin{methoddesc}{createFederationExecution}{executionName, FED}
@@ -59,111 +83,106 @@
\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{registerFederationSynchronizationPoint}{label, tag}
-
-May raise
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
-\end{methoddesc}
-
-\begin{methoddesc}{registerFederationSynchronizationPoint}{label, tag,
(federate)}
-
-May raise
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
-\end{methoddesc}
-
-\begin{methoddesc}{synchronizationPointAchieved}{label}
+\begin{methoddesc}{enableAsynchronousDelivery}{}
May raise
-\exception{SynchronizationPointLabelWasNotAnnounced},
+\exception{AsynchronousDeliveryAlreadyEnabled},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{requestFederationSave}{label, time}
+\begin{methoddesc}{disableAsynchronousDelivery}{}
May raise
-\exception{FederationTimeAlreadyPassed},
-\exception{InvalidFederationTime},
+\exception{AsynchronousDeliveryAlreadyDisabled},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{requestFederationSave}{label}
+\begin{methoddesc}{tick}{\optional{minimum, maximum}}
+Returns True or False.
May raise
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{SpecifiedSaveLabelDoesNotExist},
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{federateSaveBegun}{}
+\begin{hlamsc}{Object Declaration}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{getObjectClassHandle}{m1}{m2}
+\nextlevel
+\mess{getAttributeHandle}{m1}{m2}
+\nextlevel
+\mess{publishObjectClass}{m1}{m2}
+\nextlevel
+\mess{subscribeObjectClassAttributes}{m3}{m2}
+\nextlevel
+\mess{startRegistrationForObjectClass}{m2}{m1}
+\nextlevel
+\condition{simulation active}{m1,m2,m3}
+\nextlevel[3]
+\mess{unsubscribeObjectClass}{m3}{m2}
+\nextlevel
+\mess{stopRegistrationForObjectClass}{m2}{m1}
+\nextlevel
+\mess{unpublishObjectClass}{m1}{m2}
+\nextlevel
+\end{hlamsc}
-May raise
-\exception{SaveNotInitiated},
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{RestoreInProgress}.
-\end{methoddesc}
+\begin{methoddesc}{getObjectClassHandle}{objectName}
+Returns object class handle.
-\begin{methoddesc}{federateSaveComplete}{}
+\begin{verbatim}
+aircraftHandle = rtia.getObjectClassHandle("Aircraft")
+\end{verbatim}
May raise
-\exception{SaveNotInitiated},
+\exception{NameNotFound},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{federateSaveNotComplete}{}
+\begin{methoddesc}{getObjectClassName}{objectClass}
+Returns object class name.
May raise
-\exception{SaveNotInitiated},
+\exception{ObjectClassNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{requestFederationRestore}{label}
-
-May raise
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
-\end{methoddesc}
+\begin{methoddesc}{getAttributeHandle}{attributeName, objectClass}
+Returns class attribute handle.
-\begin{methoddesc}{federateRestoreComplete}{}
+\begin{verbatim}
+aircraftHandle = rtia.getObjectClassHandle("Aircraft")
+wordLocationHandle = rtia.getAttributeHandle("WorldLocation", aircraftHandle)
+\end{verbatim}
May raise
-\exception{RestoreNotRequested},
+\exception{ObjectClassNotDefined},
+\exception{NameNotFound},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{federateRestoreNotComplete}{}
+\begin{methoddesc}{getAttributeName}{attribute, objectClass}
+Returns class attribute name.
May raise
-\exception{RestoreNotRequested},
+\exception{ObjectClassNotDefined},
+\exception{AttributeNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\medskip
-\strong{Declaration Management Services}
-
\begin{methoddesc}{publishObjectClass}{objectClass, (attribute)}
\begin{verbatim}
@@ -193,27 +212,6 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{publishInteractionClass}{interactionClass}
-
-May raise
-\exception{InteractionClassNotDefined},
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
-\end{methoddesc}
-
-\begin{methoddesc}{unpublishInteractionClass}{interactionClass}
-
-May raise
-\exception{InteractionClassNotDefined},
-\exception{InteractionClassNotPublished},
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
-\end{methoddesc}
-
\begin{methoddesc}{subscribeObjectClassAttributes}{objectClass, (attribute),
active=True}
\begin{verbatim}
@@ -241,30 +239,24 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{subscribeInteractionClass}{interactionClass, active=True}
-
-May raise
-\exception{InteractionClassNotDefined},
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{FederateLoggingServiceCalls},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
-\end{methoddesc}
-
-\begin{methoddesc}{unsubscribeInteractionClass}{interactionClass}
-
-May raise
-\exception{InteractionClassNotDefined},
-\exception{InteractionClassNotSubscribed},
-\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
-\end{methoddesc}
-
-\medskip
-\strong{Object Management Services}
+\begin{hlamsc}{Object Management}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{registerObjectInstance}{m1}{m2}
+\nextlevel
+\mess{discoverObjectInstance}{m2}{m3}
+\nextlevel
+\mess{turnUpdatesOnForObjectInstance}{m2}{m1}
+\nextlevel
+\condition{simulation active}{m1,m2,m3}
+\nextlevel[3]
+\mess{deleteObjectInstance}{m1}{m2}
+\nextlevel
+\mess{removeObjectInstance}{m2}{m3}
+\nextlevel
+\end{hlamsc}
\begin{methoddesc}{registerObjectInstance}{objectClass\optional{, objectName}}
@@ -280,20 +272,13 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{updateAttributeValues}{object, \{attribute:value\},
tag\optional{, time}}
+\begin{methoddesc}{deleteObjectInstance}{object, tag\optional{, time}}
Returns eventRetraction handle.
-\begin{verbatim}
-rtia.updateAttributeValues(thisObject,
- {wordLocationHandle:fom.WorldLocationStruct.pack({"X":1,"Y":2,"Z":3})},
- "update")
-\end{verbatim}
-
May raise
\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
-\exception{AttributeNotOwned},
+\exception{DeletePrivilegeNotHeld},
\exception{InvalidFederationTime},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
@@ -301,64 +286,68 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{sendInteraction}{interactionClass, \{parameter:value\},
tag\optional{, time}}
-
-Returns eventRetraction handle.
+\begin{methoddesc}{localDeleteObjectInstance}{object}
May raise
-\exception{InteractionClassNotDefined},
-\exception{InteractionClassNotPublished},
-\exception{InteractionParameterNotDefined},
-\exception{InvalidFederationTime},
+\exception{ObjectNotKnown},
+\exception{FederateOwnsAttributes},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{deleteObjectInstance}{object, tag\optional{, time}}
-
-Returns eventRetraction handle.
+\begin{methoddesc}{getObjectClass}{object}
+Returns object class handle.
May raise
\exception{ObjectNotKnown},
-\exception{DeletePrivilegeNotHeld},
-\exception{InvalidFederationTime},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{localDeleteObjectInstance}{object}
+\begin{methoddesc}{getObjectInstanceHandle}{objectName}
+Returns object handle.
May raise
\exception{ObjectNotKnown},
-\exception{FederateOwnsAttributes},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{changeAttributeTransportationType}{object, (attribute),
transportation}
+\begin{methoddesc}{getObjectInstanceName}{object}
+Returns object name.
May raise
\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
-\exception{AttributeNotOwned},
+\exception{FederateNotExecutionMember},
+\exception{ConcurrentAccessAttempted}.
+\end{methoddesc}
+
+\begin{methoddesc}{getTransportationHandle}{transportationName}
+Returns transportation type handle.
+
+May raise
+\exception{NameNotFound},
+\exception{FederateNotExecutionMember},
+\exception{ConcurrentAccessAttempted}.
+\end{methoddesc}
+
+\begin{methoddesc}{getTransportationName}{transportation}
+Returns transportation type name.
+
+May raise
\exception{InvalidTransportationHandle},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{changeInteractionTransportationType}{interactionClass,
transportation}
+\begin{methoddesc}{changeAttributeTransportationType}{object, (attribute),
transportation}
May raise
-\exception{InteractionClassNotDefined},
-\exception{InteractionClassNotPublished},
+\exception{ObjectNotKnown},
+\exception{AttributeNotDefined},
+\exception{AttributeNotOwned},
\exception{InvalidTransportationHandle},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
@@ -366,6 +355,25 @@
\exception{RestoreInProgress}.
\end{methoddesc}
+\begin{hlamsc}{Object Update}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{requestClassAttributeValueUpdate}{m3}{m2}
+\nextlevel
+\mess{provideAttributeValueUpdate}{m2}{m1}
+\nextlevel
+\mess{requestObjectAttributeValueUpdate}{m3}{m2}
+\nextlevel
+\mess{provideAttributeValueUpdate}{m2}{m1}
+\nextlevel[2]
+\mess{updateAttributeValues}{m1}{m2}
+\nextlevel
+\mess{reflectAttributeValues}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
\begin{methoddesc}{requestObjectAttributeValueUpdate}{object, (attribute)}
May raise
@@ -388,269 +396,350 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\medskip
-\strong{Ownership Management Services}
+\begin{methoddesc}{updateAttributeValues}{object, \{attribute:value\},
tag\optional{, time}}
-\begin{methoddesc}{unconditionalAttributeOwnershipDivestiture}{object,
(attribute)}
+Returns eventRetraction handle.
+
+\begin{verbatim}
+rtia.updateAttributeValues(thisObject,
+ {wordLocationHandle:fom.WorldLocationStruct.pack({"X":1,"Y":2,"Z":3})},
+ "update")
+\end{verbatim}
May raise
\exception{ObjectNotKnown},
\exception{AttributeNotDefined},
\exception{AttributeNotOwned},
+\exception{InvalidFederationTime},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{negotiatedAttributeOwnershipDivestiture}{object,
(attributes), tag}
+\begin{hlamsc}{Interaction Declaration}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{getInteractionClassHandle}{m1}{m2}
+\nextlevel
+\mess{publishInteractionClass}{m1}{m2}
+\nextlevel
+\mess{subscribeInteractionClass}{m3}{m2}
+\nextlevel
+\mess{turnInteractionsOn}{m2}{m1}
+\nextlevel
+\condition{simulation active}{m1,m2,m3}
+\nextlevel[3]
+\mess{unsubscribeInteractionClass}{m3}{m2}
+\nextlevel
+\mess{turnInteractionsOff}{m2}{m1}
+\nextlevel
+\mess{unpublishInteractionClass}{m1}{m2}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{getInteractionClassHandle}{interactionName}
+Returns interaction class handle.
May raise
-\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
-\exception{AttributeNotOwned},
-\exception{AttributeAlreadyBeingDivested},
+\exception{NameNotFound},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{attributeOwnershipAcquisition}{object, (attribute), tag}
+\begin{methoddesc}{getInteractionClassName}{interactionClass}
+Returns interaction class name.
May raise
-\exception{ObjectNotKnown},
-\exception{ObjectClassNotPublished},
-\exception{AttributeNotDefined},
-\exception{AttributeNotPublished},
-\exception{FederateOwnsAttributes},
+\exception{InteractionClassNotDefined},
+\exception{FederateNotExecutionMember},
+\exception{ConcurrentAccessAttempted}.
+\end{methoddesc}
+
+\begin{methoddesc}{publishInteractionClass}{interactionClass}
+
+May raise
+\exception{InteractionClassNotDefined},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{attributeOwnershipAcquisitionIfAvailable}{object,
(attribute)}
+\begin{methoddesc}{unpublishInteractionClass}{interactionClass}
May raise
-\exception{ObjectNotKnown},
-\exception{ObjectClassNotPublished},
-\exception{AttributeNotDefined},
-\exception{AttributeNotPublished},
-\exception{FederateOwnsAttributes},
-\exception{AttributeAlreadyBeingAcquired},
+\exception{InteractionClassNotDefined},
+\exception{InteractionClassNotPublished},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{attributeOwnershipReleaseResponse}{object, (attribute)}
-
-Returns a sequence of attribute handles.
+\begin{methoddesc}{subscribeInteractionClass}{interactionClass, active=True}
May raise
-\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
-\exception{AttributeNotOwned},
-\exception{FederateWasNotAskedToReleaseAttribute},
+\exception{InteractionClassNotDefined},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
+\exception{FederateLoggingServiceCalls},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{cancelNegotiatedAttributeOwnershipDivestiture}{object,
(attribute)}
+\begin{methoddesc}{unsubscribeInteractionClass}{interactionClass}
May raise
-\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
-\exception{AttributeNotOwned},
-\exception{AttributeDivestitureWasNotRequested},
+\exception{InteractionClassNotDefined},
+\exception{InteractionClassNotSubscribed},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{cancelAttributeOwnershipAcquisition}{object, (attribute)}
+\begin{hlamsc}{Exchanging Interactions}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{getParameterHandle}{m1}{m2}
+\nextlevel
+\mess{sendInteraction}{m1}{m2}
+\nextlevel
+\mess{receiveInteraction}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{getParameterHandle}{parameterName, interactionClass}
+Returns interaction parameter handle.
May raise
-\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
-\exception{AttributeAlreadyOwned},
-\exception{AttributeAcquisitionWasNotRequested},
+\exception{InteractionClassNotDefined},
+\exception{NameNotFound},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{queryAttributeOwnership}{object, attribute}
+\begin{methoddesc}{getParameterName}{parameter, interactionClass}
+Returns interaction parameter name.
May raise
-\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
+\exception{InteractionClassNotDefined},
+\exception{InteractionParameterNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{isAttributeOwnedByFederate}{object, attribute}
+\begin{methoddesc}{sendInteraction}{interactionClass, \{parameter:value\},
tag\optional{, time}}
-Returns True or False.
+Returns eventRetraction handle.
May raise
-\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
+\exception{InteractionClassNotDefined},
+\exception{InteractionClassNotPublished},
+\exception{InteractionParameterNotDefined},
+\exception{InvalidFederationTime},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\medskip
-\strong{Time Management Services}
-
-\begin{methoddesc}{enableTimeRegulation}{federateTime, lookahead}
+\begin{methoddesc}{changeInteractionTransportationType}{interactionClass,
transportation}
May raise
-\exception{TimeRegulationAlreadyEnabled},
-\exception{EnableTimeRegulationPending},
-\exception{TimeAdvanceAlreadyInProgress},
-\exception{InvalidFederationTime},
-\exception{InvalidLookahead},
-\exception{ConcurrentAccessAttempted},
+\exception{InteractionClassNotDefined},
+\exception{InteractionClassNotPublished},
+\exception{InvalidTransportationHandle},
\exception{FederateNotExecutionMember},
+\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{disableTimeRegulation}{}
+\begin{hlamsc}{Region Creation}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{getRoutingSpaceHandle}{m1}{m2}
+\nextlevel
+\mess{getDimensionHandle}{m1}{m2}
+\nextlevel
+\mess{createRegion}{m1}{m2}
+\nextlevel
+\mess{createRegion}{m3}{m2}
+\nextlevel
+\mess{notifyAboutRegionModification}{m1}{m2}
+\nextlevel
+\mess{notifyAboutRegionModification}{m3}{m2}
+\nextlevel
+\condition{simulation active}{m1,m2,m3}
+\nextlevel[3]
+\mess{deleteRegion}{m1}{m2}
+\nextlevel
+\mess{deleteRegion}{m3}{m2}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{getRoutingSpaceHandle}{spaceName}
+Returns routing space handle.
May raise
-\exception{TimeRegulationWasNotEnabled},
-\exception{ConcurrentAccessAttempted},
+\exception{NameNotFound},
\exception{FederateNotExecutionMember},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{enableTimeConstrained}{}
+\begin{methoddesc}{getRoutingSpaceName}{space}
+Returns routing space name.
May raise
-\exception{TimeConstrainedAlreadyEnabled},
-\exception{EnableTimeConstrainedPending},
-\exception{TimeAdvanceAlreadyInProgress},
+\exception{SpaceNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{disableTimeConstrained}{}
+\begin{methoddesc}{getDimensionHandle}{dimensionName, space}
+Returns routing space dimension handle.
May raise
-\exception{TimeConstrainedWasNotEnabled},
+\exception{SpaceNotDefined},
+\exception{NameNotFound},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{timeAdvanceRequest}{time}
+\begin{methoddesc}{getDimensionName}{dimension, space}
+Returns routing space dimension name.
May raise
-\exception{InvalidFederationTime},
-\exception{FederationTimeAlreadyPassed},
-\exception{TimeAdvanceAlreadyInProgress},
-\exception{EnableTimeRegulationPending},
-\exception{EnableTimeConstrainedPending},
+\exception{SpaceNotDefined},
+\exception{DimensionNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{timeAdvanceRequestAvailable}{time}
+\begin{methoddesc}{createRegion}{space, [dimension, (upper, lower)]}
+
+Returns region handle.
May raise
-\exception{InvalidFederationTime},
-\exception{FederationTimeAlreadyPassed},
-\exception{TimeAdvanceAlreadyInProgress},
-\exception{EnableTimeRegulationPending},
-\exception{EnableTimeConstrainedPending},
+\exception{SpaceNotDefined},
+\exception{InvalidExtents},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{nextEventRequest}{time}
+\begin{methoddesc}{notifyAboutRegionModification}{region}
May raise
-\exception{InvalidFederationTime},
-\exception{FederationTimeAlreadyPassed},
-\exception{TimeAdvanceAlreadyInProgress},
-\exception{EnableTimeRegulationPending},
-\exception{EnableTimeConstrainedPending},
+\exception{RegionNotKnown},
+\exception{InvalidExtents},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{nextEventRequestAvailable}{time}
+\begin{methoddesc}{deleteRegion}{region}
May raise
-\exception{InvalidFederationTime},
-\exception{FederationTimeAlreadyPassed},
-\exception{TimeAdvanceAlreadyInProgress},
-\exception{EnableTimeRegulationPending},
-\exception{EnableTimeConstrainedPending},
+\exception{RegionNotKnown},
+\exception{RegionInUse},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{flushQueueRequest}{time}
+\begin{hlamsc}{Object Management With Regions}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{publishObjectClass}{m1}{m2}
+\nextlevel
+\mess{subscribeObjectClassAttributesWithRegion}{m3}{m2}
+\nextlevel
+\mess{startRegistrationForObjectClass}{m2}{m1}
+\nextlevel[2]
+\mess{enableAttributeRelevanceAdvisorySwitch}{m1}{m2}
+\nextlevel
+\mess{enableAttributeScopeAdvisorySwitch}{m3}{m2}
+\nextlevel[2]
+\mess{registerObjectInstanceWithRegion}{m1}{m2}
+\nextlevel
+\mess{discoverObjectInstance}{m2}{m3}
+\nextlevel
+\mess{turnUpdatesOnForObjectInstance}{m2}{m1}
+\mess{attributesInScope}{m2}{m3}
+\nextlevel
+\inlinestart{e1}{seq}{m1}{m3}
+\nextlevel
+\mess{requestClassAttributeValueUpdateWithRegion}{m3}{m2}
+\nextlevel
+\mess{provideAttributeValueUpdate}{m2}{m1}
+\nextlevel
+\mess{updateAttributeValues}{m1}{m2}
+\nextlevel
+\mess{reflectAttributeValues}{m2}{m3}
+\nextlevel
+\inlineend{e1}
+\nextlevel
+\mess{unsubscribeObjectClassWithRegion}{m3}{m2}
+\nextlevel
+\mess{stopRegistrationForObjectClass}{m2}{m1}
+\nextlevel
+\mess{turnUpdatesOffForObjectInstance}{m2}{m1}
+\nextlevel[2]
+\mess{deleteObjectInstance}{m1}{m2}
+\nextlevel
+\mess{removeObjectInstance}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{subscribeObjectClassAttributesWithRegion}{objectClass,
region, (attribute), active=True}
May raise
-\exception{InvalidFederationTime},
-\exception{FederationTimeAlreadyPassed},
-\exception{TimeAdvanceAlreadyInProgress},
-\exception{EnableTimeRegulationPending},
-\exception{EnableTimeConstrainedPending},
+\exception{ObjectClassNotDefined},
+\exception{AttributeNotDefined},
+\exception{RegionNotKnown},
+\exception{InvalidRegionContext},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{enableAsynchronousDelivery}{}
+\begin{methoddesc}{unsubscribeObjectClassWithRegion}{objectClass, region}
May raise
-\exception{AsynchronousDeliveryAlreadyEnabled},
+\exception{ObjectClassNotDefined},
+\exception{RegionNotKnown},
+\exception{ObjectClassNotSubscribed},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{disableAsynchronousDelivery}{}
+\begin{methoddesc}{enableClassRelevanceAdvisorySwitch}{}
May raise
-\exception{AsynchronousDeliveryAlreadyDisabled},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{queryLBTS}{}
-Returns the time.
+\begin{methoddesc}{disableClassRelevanceAdvisorySwitch}{}
May raise
\exception{FederateNotExecutionMember},
@@ -659,8 +748,7 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{queryFederateTime}{}
-Returns the time.
+\begin{methoddesc}{enableAttributeRelevanceAdvisorySwitch}{}
May raise
\exception{FederateNotExecutionMember},
@@ -669,8 +757,7 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{queryMinNextEventTime}{}
-Returns the time.
+\begin{methoddesc}{disableAttributeRelevanceAdvisorySwitch}{}
May raise
\exception{FederateNotExecutionMember},
@@ -679,18 +766,16 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{modifyLookahead}{lookahead}
+\begin{methoddesc}{enableAttributeScopeAdvisorySwitch}{}
May raise
-\exception{InvalidLookahead},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{queryLookahead}{}
-Returns the time.
+\begin{methoddesc}{disableAttributeScopeAdvisorySwitch}{}
May raise
\exception{FederateNotExecutionMember},
@@ -699,144 +784,155 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{retract}{eventRetraction}
+\begin{methoddesc}{registerObjectInstanceWithRegion}{objectClass, [(attribute,
region)]\optional{, object}}
+
+Returns object handle.
May raise
-\exception{InvalidRetractionHandle},
+\exception{ObjectClassNotDefined},
+\exception{ObjectClassNotPublished},
+\exception{AttributeNotDefined},
+\exception{AttributeNotPublished},
+\exception{RegionNotKnown},
+\exception{InvalidRegionContext},
+\exception{ObjectAlreadyRegistered},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{changeAttributeOrderType}{object, (attribute), orderingType}
+\begin{methoddesc}{associateRegionForUpdates}{region, object, (attribute)}
May raise
\exception{ObjectNotKnown},
\exception{AttributeNotDefined},
-\exception{AttributeNotOwned},
-\exception{InvalidOrderingHandle},
+\exception{InvalidRegionContext},
+\exception{RegionNotKnown},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{changeInteractionOrderType}{interactionClass, orderingType}
+\begin{methoddesc}{unassociateRegionForUpdates}{region, object}
May raise
-\exception{InteractionClassNotDefined},
-\exception{InteractionClassNotPublished},
-\exception{InvalidOrderingHandle},
+\exception{ObjectNotKnown},
+\exception{InvalidRegionContext},
+\exception{RegionNotKnown},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\medskip
-\strong{Data Distribution Management}
-
-\begin{methoddesc}{createRegion}{space, numberOfExtents}
-
-Returns region handle.
+\begin{methoddesc}{getAttributeRoutingSpaceHandle}{attribute, objectClass}
+Returns routing space handle.
May raise
-\exception{SpaceNotDefined},
-\exception{InvalidExtents},
+\exception{ObjectClassNotDefined},
+\exception{AttributeNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{notifyAboutRegionModification}{region}
+\begin{methoddesc}{requestClassAttributeValueUpdateWithRegion}{objectClass,
(attribute), region}
May raise
+\exception{ObjectClassNotDefined},
+\exception{AttributeNotDefined},
\exception{RegionNotKnown},
-\exception{InvalidExtents},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{deleteRegion}{region}
+\begin{hlamsc}{Exchanging Interactions With Regions}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{subscribeInteractionClassWithRegion}{m1}{m2}
+\nextlevel
+\mess{turnInteractionsOn}{m2}{m3}
+\nextlevel
+\inlinestart{e1}{seq}{m1}{m3}
+\nextlevel
+\mess{sendInteractionWithRegion}{m3}{m2}
+\nextlevel
+\mess{receiveInteraction}{m2}{m1}
+\nextlevel
+\inlineend{e1}
+\nextlevel
+\mess{unsubscribeInteractionClassWithRegion}{m1}{m2}
+\nextlevel
+\mess{turnInteractionsOff}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{subscribeInteractionClassWithRegion}{interactionClass,
region, active=True}
May raise
+\exception{InteractionClassNotDefined},
\exception{RegionNotKnown},
-\exception{RegionInUse},
+\exception{InvalidRegionContext},
+\exception{FederateLoggingServiceCalls},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{registerObjectInstanceWithRegion}{objectClass, object,
(attribute), (region)}
-
-Returns object handle.
+\begin{methoddesc}{unsubscribeInteractionClassWithRegion}{interactionClass,
region}
May raise
-\exception{ObjectClassNotDefined},
-\exception{ObjectClassNotPublished},
-\exception{AttributeNotDefined},
-\exception{AttributeNotPublished},
+\exception{InteractionClassNotDefined},
+\exception{InteractionClassNotSubscribed},
\exception{RegionNotKnown},
-\exception{InvalidRegionContext},
-\exception{ObjectAlreadyRegistered},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{registerObjectInstanceWithRegion}{objectClass, (attribute),
(region)}
-
-Returns object handle.
+\begin{methoddesc}{enableInteractionRelevanceAdvisorySwitch}{}
May raise
-\exception{ObjectClassNotDefined},
-\exception{ObjectClassNotPublished},
-\exception{AttributeNotDefined},
-\exception{AttributeNotPublished},
-\exception{RegionNotKnown},
-\exception{InvalidRegionContext},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{associateRegionForUpdates}{region, object, (attribute)}
+\begin{methoddesc}{disableInteractionRelevanceAdvisorySwitch}{}
May raise
-\exception{ObjectNotKnown},
-\exception{AttributeNotDefined},
-\exception{InvalidRegionContext},
-\exception{RegionNotKnown},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{unassociateRegionForUpdates}{region, object}
+\begin{methoddesc}{getInteractionRoutingSpaceHandle}{interactionClass}
+Returns routing space handle.
May raise
-\exception{ObjectNotKnown},
-\exception{InvalidRegionContext},
-\exception{RegionNotKnown},
+\exception{InteractionClassNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
-\exception{RestoreInProgress}.
+\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{subscribeObjectClassAttributesWithRegion}{objectClass,
region, (attribute), active=True}
+\begin{methoddesc}{sendInteractionWithRegion}{interactionClass,
{parameter:value}, region, tag\optional{, time}}
+
+Returns eventRetraction handle.
May raise
-\exception{ObjectClassNotDefined},
-\exception{AttributeNotDefined},
+\exception{InteractionClassNotDefined},
+\exception{InteractionClassNotPublished},
+\exception{InteractionParameterNotDefined},
+\exception{InvalidFederationTime},
\exception{RegionNotKnown},
\exception{InvalidRegionContext},
\exception{FederateNotExecutionMember},
@@ -845,260 +941,434 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{unsubscribeObjectClassWithRegion}{objectClass, region}
+\begin{hlamsc}{Ownership Push}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{negotiatedAttributeOwnershipDivestiture}{m1}{m2}
+\nextlevel
+\mess{requestAttributeOwnershipAssumption}{m2}{m3}
+\nextlevel
+\inlinestart{e1}{opt}{m1}{m2}
+\nextlevel[2]
+\mess{cancelNegotiatedAttributeOwnershipDivestiture}{m1}{m2}
+\nextlevel
+\inlineend{e1}
+\nextlevel
+\mess{attributeOwnershipAcquisition}{m3}{m2}
+\nextlevel
+\mess{attributeOwnershipDivestitureNotification}{m2}{m1}
+\nextlevel
+\mess{attributeOwnershipAcquisitionNotification}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{negotiatedAttributeOwnershipDivestiture}{object,
(attributes), tag}
May raise
-\exception{ObjectClassNotDefined},
-\exception{RegionNotKnown},
-\exception{ObjectClassNotSubscribed},
+\exception{ObjectNotKnown},
+\exception{AttributeNotDefined},
+\exception{AttributeNotOwned},
+\exception{AttributeAlreadyBeingDivested},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{subscribeInteractionClassWithRegion}{interactionClass,
region, active=True}
+\begin{methoddesc}{unconditionalAttributeOwnershipDivestiture}{object,
(attribute)}
May raise
-\exception{InteractionClassNotDefined},
-\exception{RegionNotKnown},
-\exception{InvalidRegionContext},
-\exception{FederateLoggingServiceCalls},
+\exception{ObjectNotKnown},
+\exception{AttributeNotDefined},
+\exception{AttributeNotOwned},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{unsubscribeInteractionClassWithRegion}{interactionClass,
region}
+\begin{methoddesc}{cancelNegotiatedAttributeOwnershipDivestiture}{object,
(attribute)}
May raise
-\exception{InteractionClassNotDefined},
-\exception{InteractionClassNotSubscribed},
-\exception{RegionNotKnown},
+\exception{ObjectNotKnown},
+\exception{AttributeNotDefined},
+\exception{AttributeNotOwned},
+\exception{AttributeDivestitureWasNotRequested},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{sendInteractionWithRegion}{interactionClass,
{parameter:value}, tag, region\optional{, time}}
+\begin{hlamsc}{Intrusive Ownership Pull}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{attributeOwnershipAcquisition}{m1}{m2}
+\nextlevel
+\mess{requestAttributeOwnershipRelease}{m2}{m3}
+\nextlevel
+\inlinestart{e1}{opt}{m1}{m2}
+\nextlevel[2]
+\mess{cancelAttributeOwnershipAcquisition}{m1}{m2}
+\nextlevel
+\mess{ConfirmAttributeOwnershipAcquisitionCancellation}{m2}{m1}
+\nextlevel
+\inlineend{e1}
+\nextlevel
+\mess{attributeOwnershipReleaseResponse}{m3}{m2}
+\nextlevel
+\mess{attributeOwnershipAcquisitionNotification}{m2}{m1}
+\nextlevel
+\end{hlamsc}
-Returns eventRetraction handle.
+\begin{methoddesc}{attributeOwnershipAcquisition}{object, (attribute), tag}
May raise
-\exception{InteractionClassNotDefined},
-\exception{InteractionClassNotPublished},
-\exception{InteractionParameterNotDefined},
-\exception{InvalidFederationTime},
-\exception{RegionNotKnown},
-\exception{InvalidRegionContext},
+\exception{ObjectNotKnown},
+\exception{ObjectClassNotPublished},
+\exception{AttributeNotDefined},
+\exception{AttributeNotPublished},
+\exception{FederateOwnsAttributes},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{requestClassAttributeValueUpdateWithRegion}{objectClass,
(attribute), region}
+\begin{methoddesc}{cancelAttributeOwnershipAcquisition}{object, (attribute)}
May raise
-\exception{ObjectClassNotDefined},
+\exception{ObjectNotKnown},
\exception{AttributeNotDefined},
-\exception{RegionNotKnown},
+\exception{AttributeAlreadyOwned},
+\exception{AttributeAcquisitionWasNotRequested},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\medskip
-\strong{RTI Support Services}
-
-\begin{methoddesc}{getObjectClassHandle}{objectName}
-Returns object class handle.
+\begin{methoddesc}{attributeOwnershipReleaseResponse}{object, (attribute)}
-\begin{verbatim}
-aircraftHandle = rtia.getObjectClassHandle("Aircraft")
-\end{verbatim}
+Returns a sequence of attribute handles.
May raise
-\exception{NameNotFound},
+\exception{ObjectNotKnown},
+\exception{AttributeNotDefined},
+\exception{AttributeNotOwned},
+\exception{FederateWasNotAskedToReleaseAttribute},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getObjectClassName}{objectClass}
-Returns object class name.
+\begin{hlamsc}{Ownership Pull Orphaned}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{attributeOwnershipAcquisitionIfAvailable}{m1}{m2}
+\nextlevel
+\inlinestart{e1}{alt}{m1}{m2}
+\nextlevel[2]
+\mess{attributeOwnershipUnavailable}{m1}{m2}
+\nextlevel
+\inlineseparator{e1}
+\nextlevel
+\mess{attributeOwnershipAcquisitionNotification}{m1}{m2}
+\nextlevel
+\inlineend{e1}
+\end{hlamsc}
+
+\begin{methoddesc}{attributeOwnershipAcquisitionIfAvailable}{object,
(attribute)}
May raise
-\exception{ObjectClassNotDefined},
+\exception{ObjectNotKnown},
+\exception{ObjectClassNotPublished},
+\exception{AttributeNotDefined},
+\exception{AttributeNotPublished},
+\exception{FederateOwnsAttributes},
+\exception{AttributeAlreadyBeingAcquired},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getAttributeHandle}{attributeName, objectClass}
-Returns class attribute handle.
-
-\begin{verbatim}
-aircraftHandle = rtia.getObjectClassHandle("Aircraft")
-wordLocationHandle = rtia.getAttributeHandle("WorldLocation", aircraftHandle)
-\end{verbatim}
+\begin{methoddesc}{queryAttributeOwnership}{object, attribute}
May raise
-\exception{ObjectClassNotDefined},
-\exception{NameNotFound},
+\exception{ObjectNotKnown},
+\exception{AttributeNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getAttributeName}{attribute, objectClass}
-Returns class attribute name.
+\begin{methoddesc}{isAttributeOwnedByFederate}{object, attribute}
+
+Returns True or False.
May raise
-\exception{ObjectClassNotDefined},
+\exception{ObjectNotKnown},
\exception{AttributeNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getInteractionClassHandle}{interactionName}
-Returns interaction class handle.
+\begin{hlamsc}{Time Management Policy}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{enableTimeRegulation}{m1}{m2}
+\nextlevel
+\mess{timeRegulationEnabled}{m2}{m1}
+\nextlevel[2]
+\mess{enableTimeConstrained}{m1}{m2}
+\nextlevel
+\mess{timeConstrainedEnabled}{m2}{m1}
+\nextlevel
+\condition{regulating and constrained}{m1,m2}
+\nextlevel[3]
+\mess{disableTimeRegulation}{m1}{m2}
+\nextlevel
+\mess{disableTimeConstrained}{m1}{m2}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{enableTimeRegulation}{federateTime, lookahead}
May raise
-\exception{NameNotFound},
+\exception{TimeRegulationAlreadyEnabled},
+\exception{EnableTimeRegulationPending},
+\exception{TimeAdvanceAlreadyInProgress},
+\exception{InvalidFederationTime},
+\exception{InvalidLookahead},
+\exception{ConcurrentAccessAttempted},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getInteractionClassName}{interactionClass}
-Returns interaction class name.
+\begin{methoddesc}{disableTimeRegulation}{}
May raise
-\exception{InteractionClassNotDefined},
+\exception{TimeRegulationWasNotEnabled},
+\exception{ConcurrentAccessAttempted},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getParameterHandle}{parameterName, interactionClass}
-Returns interaction parameter handle.
+\begin{methoddesc}{enableTimeConstrained}{}
May raise
-\exception{InteractionClassNotDefined},
-\exception{NameNotFound},
+\exception{TimeConstrainedAlreadyEnabled},
+\exception{EnableTimeConstrainedPending},
+\exception{TimeAdvanceAlreadyInProgress},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getParameterName}{parameter, interactionClass}
-Returns interaction parameter name.
+\begin{methoddesc}{disableTimeConstrained}{}
May raise
-\exception{InteractionClassNotDefined},
-\exception{InteractionParameterNotDefined},
+\exception{TimeConstrainedWasNotEnabled},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getObjectInstanceHandle}{objectName}
-Returns object handle.
+\begin{hlamsc}{Time Step Advancement}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{timeAdvanceRequest}{m1}{m2}
+\nextlevel
+\mess{timeAdvanceGrant}{m2}{m1}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{timeAdvanceRequest}{time}
May raise
-\exception{ObjectNotKnown},
+\exception{InvalidFederationTime},
+\exception{FederationTimeAlreadyPassed},
+\exception{TimeAdvanceAlreadyInProgress},
+\exception{EnableTimeRegulationPending},
+\exception{EnableTimeConstrainedPending},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getObjectInstanceName}{object}
-Returns object name.
+\begin{methoddesc}{timeAdvanceRequestAvailable}{time}
May raise
-\exception{ObjectNotKnown},
+\exception{InvalidFederationTime},
+\exception{FederationTimeAlreadyPassed},
+\exception{TimeAdvanceAlreadyInProgress},
+\exception{EnableTimeRegulationPending},
+\exception{EnableTimeConstrainedPending},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getRoutingSpaceHandle}{spaceName}
-Returns routing space handle.
+\begin{hlamsc}{Event-Based Advancement}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{nextEventRequest}{m3}{m2}
+\nextlevel
+\mess{timeAdvanceGrant}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{nextEventRequest}{time}
May raise
-\exception{NameNotFound},
+\exception{InvalidFederationTime},
+\exception{FederationTimeAlreadyPassed},
+\exception{TimeAdvanceAlreadyInProgress},
+\exception{EnableTimeRegulationPending},
+\exception{EnableTimeConstrainedPending},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getRoutingSpaceName}{space}
-Returns routing space name.
+\begin{methoddesc}{nextEventRequestAvailable}{time}
May raise
-\exception{SpaceNotDefined},
+\exception{InvalidFederationTime},
+\exception{FederationTimeAlreadyPassed},
+\exception{TimeAdvanceAlreadyInProgress},
+\exception{EnableTimeRegulationPending},
+\exception{EnableTimeConstrainedPending},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getDimensionHandle}{dimensionName, space}
-Returns routing space dimension handle.
+\begin{hlamsc}{Optimistic Advancement}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{flushQueueRequest}{m3}{m2}
+\nextlevel
+\mess{timeAdvanceGrant}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{flushQueueRequest}{time}
May raise
-\exception{SpaceNotDefined},
-\exception{NameNotFound},
+\exception{InvalidFederationTime},
+\exception{FederationTimeAlreadyPassed},
+\exception{TimeAdvanceAlreadyInProgress},
+\exception{EnableTimeRegulationPending},
+\exception{EnableTimeConstrainedPending},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getDimensionName}{dimension, space}
-Returns routing space dimension name.
+\begin{hlamsc}{Time Queries}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{queryFederateTime}{m1}{m2}
+\nextlevel
+\mess{queryLookahead}{m1}{m2}
+\nextlevel
+\mess{modifyLookahead}{m1}{m2}
+\nextlevel
+\mess{queryLBTS}{m1}{m2}
+\nextlevel
+\mess{queryMinNextTimeEvent}{m1}{m2}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{queryLBTS}{}
+Returns the time.
May raise
-\exception{SpaceNotDefined},
-\exception{DimensionNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getAttributeRoutingSpaceHandle}{attribute, objectClass}
-Returns routing space handle.
+\begin{methoddesc}{queryFederateTime}{}
+Returns the time.
May raise
-\exception{ObjectClassNotDefined},
-\exception{AttributeNotDefined},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getObjectClass}{object}
-Returns object class handle.
+\begin{methoddesc}{queryMinNextEventTime}{}
+Returns the time.
May raise
-\exception{ObjectNotKnown},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getInteractionRoutingSpaceHandle}{interactionClass}
-Returns routing space handle.
+\begin{methoddesc}{modifyLookahead}{lookahead}
May raise
-\exception{InteractionClassNotDefined},
+\exception{InvalidLookahead},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getTransportationHandle}{transportationName}
-Returns transportation type handle.
+\begin{methoddesc}{queryLookahead}{}
+Returns the time.
May raise
-\exception{NameNotFound},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getTransportationName}{transportation}
-Returns transportation type name.
+\begin{methoddesc}{retract}{eventRetraction}
May raise
-\exception{InvalidTransportationHandle},
+\exception{InvalidRetractionHandle},
\exception{FederateNotExecutionMember},
-\exception{ConcurrentAccessAttempted}.
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
\begin{methoddesc}{getOrderingHandle}{orderingName}
@@ -1119,25 +1389,53 @@
\exception{ConcurrentAccessAttempted}.
\end{methoddesc}
-\begin{methoddesc}{enableClassRelevanceAdvisorySwitch}{}
+\begin{methoddesc}{changeAttributeOrderType}{object, (attribute), ordering}
May raise
+\exception{ObjectNotKnown},
+\exception{AttributeNotDefined},
+\exception{AttributeNotOwned},
+\exception{InvalidOrderingHandle},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{disableClassRelevanceAdvisorySwitch}{}
+\begin{methoddesc}{changeInteractionOrderType}{interactionClass, ordering}
May raise
+\exception{InteractionClassNotDefined},
+\exception{InteractionClassNotPublished},
+\exception{InvalidOrderingHandle},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{enableAttributeRelevanceAdvisorySwitch}{}
+\begin{hlamsc}{Federation Synchronization}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{registerFederationSynchronizationPoint}{m1}{m2}
+\nextlevel
+\mess{synchronizationPointRegistrationSucceeded}{m2}{m1}
+\nextlevel[2]
+\mess{announceSynchronizationPoint}{m2}{m1}
+\mess{announceSynchronizationPoint}{m2}{m3}
+\nextlevel
+\mess{synchronizationPointAchieved}{m1}{m2}
+\nextlevel
+\mess{synchronizationPointAchieved}{m3}{m2}
+\nextlevel
+\mess{federationSynchronized}{m2}{m1}
+\mess{federationSynchronized}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{registerFederationSynchronizationPoint}{label,
tag\optional{, (federate)}}
May raise
\exception{FederateNotExecutionMember},
@@ -1146,77 +1444,127 @@
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{disableAttributeRelevanceAdvisorySwitch}{}
+\begin{methoddesc}{synchronizationPointAchieved}{label}
May raise
+\exception{SynchronizationPointLabelWasNotAnnounced},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{enableAttributeScopeAdvisorySwitch}{}
+\begin{hlamsc}{Federation Save}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{requestFederationSave}{m1}{m2}
+\nextlevel
+\mess{initiateFederationSave}{m2}{m1}
+\mess{initiateFederationSave}{m2}{m3}
+\nextlevel
+\mess{federateSaveBegun}{m1}{m2}
+\nextlevel
+\mess{federateSaveBegun}{m3}{m2}
+\mess{federateSaveComplete}{m1}{m2}
+\nextlevel
+\mess{federateSaveComplete}{m3}{m2}
+\nextlevel
+\mess{federationSaved}{m2}{m1}
+\mess{federationSaved}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{requestFederationSave}{label\optional{, time}}
May raise
+\exception{FederationTimeAlreadyPassed},
+\exception{InvalidFederationTime},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{disableAttributeScopeAdvisorySwitch}{}
+\begin{methoddesc}{federateSaveBegun}{}
May raise
+\exception{SaveNotInitiated},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{enableInteractionRelevanceAdvisorySwitch}{}
+\begin{methoddesc}{federateSaveComplete}{}
May raise
+\exception{SaveNotInitiated},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{disableInteractionRelevanceAdvisorySwitch}{}
+\begin{methoddesc}{federateSaveNotComplete}{}
May raise
+\exception{SaveNotInitiated},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
-\exception{SaveInProgress},
\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{tick}{\optional{minimum, maximum}}
-Returns True or False.
+\begin{hlamsc}{Federation Restore}
+\declinst{m1}{Federate}{A}
+\declinst{m2}{RTI}{}
+\declinst{m3}{Federate}{B}
+
+\mess{requestFederationRestore}{m1}{m2}
+\nextlevel
+\mess{requestFederationRestoreSucceeded}{m2}{m1}
+\nextlevel[2]
+\mess{federateRestoreBegun}{m2}{m1}
+\mess{federateRestoreBegun}{m2}{m3}
+\nextlevel
+\mess{initiateFederateRestore}{m2}{m1}
+\mess{initiateFederateRestore}{m2}{m3}
+\nextlevel
+\mess{federateRestoreComplete}{m1}{m2}
+\nextlevel
+\mess{federaterestoreComplete}{m3}{m2}
+\nextlevel
+\mess{federationRestored}{m2}{m1}
+\mess{federationRestored}{m2}{m3}
+\nextlevel
+\end{hlamsc}
+
+\begin{methoddesc}{requestFederationRestore}{label}
May raise
-\exception{SpecifiedSaveLabelDoesNotExist},
-\exception{ConcurrentAccessAttempted}.
+\exception{FederateNotExecutionMember},
+\exception{ConcurrentAccessAttempted},
+\exception{SaveInProgress},
+\exception{RestoreInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getRegionToken}{region}
-Returns region token.
+\begin{methoddesc}{federateRestoreComplete}{}
May raise
+\exception{RestoreNotRequested},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
-\exception{RegionNotKnown}.
+\exception{SaveInProgress}.
\end{methoddesc}
-\begin{methoddesc}{getRegion}{regionToken}
-Returns region handle.
+\begin{methoddesc}{federateRestoreNotComplete}{}
May raise
+\exception{RestoreNotRequested},
\exception{FederateNotExecutionMember},
\exception{ConcurrentAccessAttempted},
-\exception{RegionNotKnown}.
+\exception{SaveInProgress}.
\end{methoddesc}
\end{classdesc}
-% $Id: rtiambassador.tex,v 1.3 2008/10/02 10:04:36 gotthardp Exp $
+% $Id: rtiambassador.tex,v 1.4 2008/10/09 16:50:58 gotthardp Exp $
Index: hla/_rti/handles.cpp
===================================================================
RCS file: /sources/certi/applications/PyHLA/hla/_rti/handles.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- hla/_rti/handles.cpp 2 Oct 2008 10:04:04 -0000 1.3
+++ hla/_rti/handles.cpp 9 Oct 2008 16:50:58 -0000 1.4
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * $Id: handles.cpp,v 1.3 2008/10/02 10:04:04 gotthardp Exp $
+ * $Id: handles.cpp,v 1.4 2008/10/09 16:50:58 gotthardp Exp $
*/
// note: you must include Python.h before any standard headers are included
@@ -658,6 +658,198 @@
return 1; // success
}
+static int
+RegionHandle_print(RegionHandleObject *v, FILE *fp, int flags)
+{
+ fprintf(fp, "<%s=%lu>", v->ob_type->tp_name, v->ob_handle);
+ return 0;
+}
+
+static int
+RegionHandle_compare(RegionHandleObject *v, RegionHandleObject *w)
+{
+ return (v->ob_handle < w->ob_handle) ? -1 :
+ (v->ob_handle > w->ob_handle) ? 1 : 0;
+}
+
+static PyObject *
+RegionHandle_repr(RegionHandleObject *v)
+{
+ return PyString_FromFormat("<%s=%lu>", v->ob_type->tp_name, v->ob_handle);
+}
+
+static long
+RegionHandle_hash(RegionHandleObject *v)
+{
+ // create a "signed long" hash from an "unsigned long" number
+ static const int __shift = 15; // see SHIFT in longintrepr.h
+ return (v->ob_handle >> __shift) | (v->ob_handle & ~0UL << __shift);
+}
+
+PyTypeObject RegionHandleType = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /* ob_size */
+ MODULE_NAME ".RegionHandle", /* tp_name */
+ sizeof(RtiULongHandleObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ 0, /* tp_dealloc */
+ (printfunc)RegionHandle_print, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ (cmpfunc)RegionHandle_compare, /* tp_compare */
+ (reprfunc)RegionHandle_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ (hashfunc)RegionHandle_hash, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ "RegionHandle", /* tp_doc */
+};
+
+int
+RegionHandle_FromPython(RegionHandleObject *value, RTI::Region **result)
+{
+ if(value == NULL || !PyObject_TypeCheck(value, &RegionHandleType)) {
+ PyErr_SetString(PyExc_TypeError,
+ "RegionHandle object required");
+ return 0; // failure
+ }
+
+ *result = value->ob_value;
+ return 1; // success
+}
+
+static int
+longhandle_print(RtiLongHandleObject *v, FILE *fp, int flags)
+{
+ fprintf(fp, "<%s=%li>", v->ob_type->tp_name, v->ob_ival);
+ return 0;
+}
+
+static int
+longhandle_compare(RtiLongHandleObject *v, RtiLongHandleObject *w)
+{
+ return (v->ob_ival < w->ob_ival) ? -1 :
+ (v->ob_ival > w->ob_ival) ? 1 : 0;
+}
+
+static PyObject *
+longhandle_repr(RtiLongHandleObject *v)
+{
+ return PyString_FromFormat("<%s=%li>", v->ob_type->tp_name, v->ob_ival);
+}
+
+static long
+longhandle_hash(RtiLongHandleObject *v)
+{
+ return v->ob_ival;
+}
+
+PyTypeObject RtiSpaceHandleType = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /* ob_size */
+ MODULE_NAME ".SpaceHandle", /* tp_name */
+ sizeof(RtiLongHandleObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ 0, /* tp_dealloc */
+ (printfunc)longhandle_print, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ (cmpfunc)longhandle_compare, /* tp_compare */
+ (reprfunc)longhandle_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ (hashfunc)longhandle_hash, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ "SpaceHandle", /* tp_doc */
+};
+
+int
+RtiSpaceHandle_FromPython(RtiLongHandleObject *value, RTI::SpaceHandle *result)
+{
+ if(value == NULL || !PyObject_TypeCheck(value, &RtiSpaceHandleType)) {
+ PyErr_SetString(PyExc_TypeError,
+ "SpaceHandle object required");
+ return 0; // failure
+ }
+
+ *result = value->ob_ival;
+ return 1; // success
+}
+
+PyObject *
+RtiSpaceHandle_ToPython(RTI::SpaceHandle *value)
+{
+ RtiLongHandleObject *self =
+ PyObject_New(RtiLongHandleObject, &RtiSpaceHandleType);
+ if (self == NULL)
+ return NULL;
+ self->ob_ival = *value;
+
+ return (PyObject *)self;
+}
+
+PyTypeObject RtiDimensionHandleType = {
+ PyObject_HEAD_INIT(NULL)
+ 0, /* ob_size */
+ MODULE_NAME ".DimensionHandle", /* tp_name */
+ sizeof(RtiULongHandleObject), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ 0, /* tp_dealloc */
+ (printfunc)ulonghandle_print, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ (cmpfunc)ulonghandle_compare, /* tp_compare */
+ (reprfunc)ulonghandle_repr, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ (hashfunc)ulonghandle_hash, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT, /* tp_flags */
+ "DimensionHandle", /* tp_doc */
+};
+
+int
+RtiDimensionHandle_FromPython(RtiULongHandleObject *value,
RTI::DimensionHandle *result)
+{
+ if(value == NULL || !PyObject_TypeCheck(value, &RtiDimensionHandleType)) {
+ PyErr_SetString(PyExc_TypeError,
+ "DimensionHandle object required");
+ return 0; // failure
+ }
+
+ *result = value->ob_ival;
+ return 1; // success
+}
+
+PyObject *
+RtiDimensionHandle_ToPython(RTI::DimensionHandle *value)
+{
+ RtiULongHandleObject *self =
+ PyObject_New(RtiULongHandleObject, &RtiDimensionHandleType);
+ if (self == NULL)
+ return NULL;
+ self->ob_ival = *value;
+
+ return (PyObject *)self;
+}
+
class HandlesInitializer : public RtiInitializer
{
public:
@@ -714,6 +906,21 @@
return;
Py_INCREF(&EventRetractionHandleType);
PyModule_AddObject(module, "EventRetractionHandle", (PyObject
*)&EventRetractionHandleType);
+
+ if (PyType_Ready(&RegionHandleType) < 0)
+ return;
+ Py_INCREF(&RegionHandleType);
+ PyModule_AddObject(module, "RegionHandle", (PyObject *)&RegionHandleType);
+
+ if (PyType_Ready(&RtiSpaceHandleType) < 0)
+ return;
+ Py_INCREF(&RtiSpaceHandleType);
+ PyModule_AddObject(module, "SpaceHandle", (PyObject *)&RtiSpaceHandleType);
+
+ if (PyType_Ready(&RtiDimensionHandleType) < 0)
+ return;
+ Py_INCREF(&RtiDimensionHandleType);
+ PyModule_AddObject(module, "DimensionHandle", (PyObject
*)&RtiDimensionHandleType);
}
-// $Id: handles.cpp,v 1.3 2008/10/02 10:04:04 gotthardp Exp $
+// $Id: handles.cpp,v 1.4 2008/10/09 16:50:58 gotthardp Exp $
Index: hla/_rti/handles.h
===================================================================
RCS file: /sources/certi/applications/PyHLA/hla/_rti/handles.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- hla/_rti/handles.h 2 Oct 2008 10:04:04 -0000 1.3
+++ hla/_rti/handles.h 9 Oct 2008 16:50:58 -0000 1.4
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * $Id: handles.h,v 1.3 2008/10/02 10:04:04 gotthardp Exp $
+ * $Id: handles.h,v 1.4 2008/10/09 16:50:58 gotthardp Exp $
*/
#ifndef RTI_HANDLES_H
@@ -21,7 +21,7 @@
typedef struct {
PyObject_HEAD
- unsigned long ob_ival;
+ RTI::ULong ob_ival;
} RtiULongHandleObject;
extern PyTypeObject RtiObjectClassHandleType;
@@ -80,6 +80,30 @@
int RTIfedTime_FromPython(PyObject *value, RTIfedTime *result);
+typedef struct {
+ PyObject_HEAD
+ RTI::RegionToken ob_handle;
+ RTI::Region *ob_value;
+} RegionHandleObject;
+
+extern PyTypeObject RegionHandleType;
+
+int RegionHandle_FromPython(RegionHandleObject *value, RTI::Region **result);
+
+typedef struct {
+ PyObject_HEAD
+ RTI::Long ob_ival;
+} RtiLongHandleObject;
+
+extern PyTypeObject RtiSpaceHandleType;
+extern PyTypeObject RtiDimensionHandleType;
+
+int RtiSpaceHandle_FromPython(RtiLongHandleObject *value, RTI::SpaceHandle
*result);
+PyObject *RtiSpaceHandle_ToPython(RTI::SpaceHandle *value);
+
+int RtiDimensionHandle_FromPython(RtiULongHandleObject *value,
RTI::DimensionHandle *result);
+PyObject *RtiDimensionHandle_ToPython(RTI::DimensionHandle *value);
+
#endif // RTI_HANDLES_H
-// $Id: handles.h,v 1.3 2008/10/02 10:04:04 gotthardp Exp $
+// $Id: handles.h,v 1.4 2008/10/09 16:50:58 gotthardp Exp $
Index: hla/_rti/module.h
===================================================================
RCS file: /sources/certi/applications/PyHLA/hla/_rti/module.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- hla/_rti/module.h 25 Sep 2008 17:17:37 -0000 1.1
+++ hla/_rti/module.h 9 Oct 2008 16:50:58 -0000 1.2
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * $Id: module.h,v 1.1 2008/09/25 17:17:37 gotthardp Exp $
+ * $Id: module.h,v 1.2 2008/10/09 16:50:58 gotthardp Exp $
*/
#ifndef RTI_MODULE_H
@@ -22,6 +22,20 @@
#define MODULE_NAME "rti"
template<typename T>
+class auto_arrayptr
+{
+public:
+ auto_arrayptr(T *ptr = NULL) { m_ptr = ptr; }
+ ~auto_arrayptr() { delete[] m_ptr; }
+
+ operator T*() const { return m_ptr; }
+ T* get() const { return m_ptr; }
+
+private:
+ T* m_ptr;
+};
+
+template<typename T>
class auto_decref
{
public:
@@ -51,4 +65,4 @@
#endif // RTI_MODULE_H
-// $Id: module.h,v 1.1 2008/09/25 17:17:37 gotthardp Exp $
+// $Id: module.h,v 1.2 2008/10/09 16:50:58 gotthardp Exp $
Index: hla/_rti/rtiambassador.cpp
===================================================================
RCS file: /sources/certi/applications/PyHLA/hla/_rti/rtiambassador.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- hla/_rti/rtiambassador.cpp 2 Oct 2008 10:04:04 -0000 1.2
+++ hla/_rti/rtiambassador.cpp 9 Oct 2008 16:50:58 -0000 1.3
@@ -11,7 +11,7 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
- * $Id: rtiambassador.cpp,v 1.2 2008/10/02 10:04:04 gotthardp Exp $
+ * $Id: rtiambassador.cpp,v 1.3 2008/10/09 16:50:58 gotthardp Exp $
*/
// note: you must include Python.h before any standard headers are included
@@ -152,10 +152,13 @@
static PyObject *
rtia_resignFederationExecution(RTIAmbassadorObject *self, PyObject *args)
{
- RTI::ResignAction theAction;
+ int theAction;
+
+ if(!PyArg_ParseTuple(args, "i", &theAction))
+ return NULL;
try {
- self->ob_rtia->resignFederationExecution(theAction);
+ self->ob_rtia->resignFederationExecution((RTI::ResignAction)theAction);
// destroy the pointer stored in rtia_joinFederationExecution()
Py_DECREF(self->ob_federate);
@@ -240,8 +243,7 @@
return NULL;
try {
- size_t size = PyTuple_Size(args);
- if(size == 1)
+ if(PyTuple_Size(args) == 1)
self->ob_rtia->requestFederationSave(label);
else
self->ob_rtia->requestFederationSave(label, theTime);
@@ -1626,11 +1628,50 @@
rtia_createRegion(RTIAmbassadorObject *self, PyObject *args)
{
RTI::SpaceHandle theSpace;
- RTI::ULong numberOfExtents;
+ PyObject *theDimensions;
+
+ if(!PyArg_ParseTuple(args, "O&O",
+ RtiSpaceHandle_FromPython, &theSpace,
+ &theDimensions))
+ return NULL;
+
+ if(!PySequence_Check(theDimensions)) {
+ PyErr_SetString(PyExc_TypeError,
+ "sequence [DimensionHandle,(int,int)] required");
+ return NULL;
+ }
try {
- RTI::Region *result = self->ob_rtia->createRegion(theSpace,
numberOfExtents);
+ RTI::ULong numberOfExtents = PySequence_Size(theDimensions);
+ RTI::Region *regionData = self->ob_rtia->createRegion(theSpace,
numberOfExtents);
+
+ for (Py_ssize_t pos = 0; pos < numberOfExtents; pos++) {
+ RTI::DimensionHandle dimension;
+ unsigned long lowerBound;
+ unsigned long upperBound;
+
+ auto_decref<PyObject> item = PySequence_GetItem(theDimensions,
pos);
+ if(!PyArg_ParseTuple(item, "O&(kk)",
+ RtiDimensionHandle_FromPython, &dimension,
+ &lowerBound,
+ &upperBound))
+ return 0; // failure
+
+ regionData->setRangeLowerBound(pos, dimension, lowerBound);
+ regionData->setRangeUpperBound(pos, dimension, upperBound);
+ }
+
+ RegionHandleObject *result =
+ PyObject_New(RegionHandleObject, &RegionHandleType);
+ if (result == NULL)
+ return NULL;
+ // keep also the handle
+ // this is to facilitate hashing and forward compatibility with
IEEE1516
+ result->ob_handle = self->ob_rtia->getRegionToken(regionData);
+ result->ob_value = regionData;
+
+ return (PyObject *)result;
}
CATCH_RTI_EXCEPTION(SpaceNotDefined)
CATCH_RTI_EXCEPTION(InvalidExtents)
@@ -1649,9 +1690,14 @@
{
RTI::Region *theRegion;
+ if(!PyArg_ParseTuple(args, "O&",
+ RegionHandle_FromPython, &theRegion))
+ return NULL;
+
try {
self->ob_rtia->notifyAboutRegionModification(*theRegion);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(RegionNotKnown)
CATCH_RTI_EXCEPTION(InvalidExtents)
@@ -1670,9 +1716,14 @@
{
RTI::Region *theRegion;
+ if(!PyArg_ParseTuple(args, "O&",
+ RegionHandle_FromPython, &theRegion))
+ return NULL;
+
try {
self->ob_rtia->deleteRegion(theRegion);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(RegionNotKnown)
CATCH_RTI_EXCEPTION(RegionInUse)
@@ -1690,32 +1741,40 @@
rtia_registerObjectInstanceWithRegion(RTIAmbassadorObject *self, PyObject
*args)
{
RTI::ObjectClassHandle theClass;
- const char *theObject; // optional
- RTI::AttributeHandle *theAttributes;
- RTI::Region **theRegions;
- RTI::ULong theNumberOfHandles;
+ PyObject *attributesAndRegions;
+ const char *theObject = NULL; // optional
+
+ if(!PyArg_ParseTuple(args, "O&O|s",
+ RtiObjectClassHandle_FromPython, &theClass,
+ &attributesAndRegions,
+ &theObject))
+ return NULL;
try {
- RTI::ObjectHandle result =
self->ob_rtia->registerObjectInstanceWithRegion(theClass,
- theAttributes, theRegions, theNumberOfHandles);
+ RTI::ULong theNumberOfHandles = PySequence_Size(attributesAndRegions);
+ // note, std::auto_ptr cannot handle arrays
+ auto_arrayptr<RTI::AttributeHandle> theAttributes = new
RTI::AttributeHandle[theNumberOfHandles];
+ auto_arrayptr<RTI::Region *> theRegions = new RTI::Region
*[theNumberOfHandles];
+
+ for (RTI::ULong pos = 0; pos < theNumberOfHandles; pos++) {
+ auto_decref<PyObject> item =
PySequence_GetItem(attributesAndRegions, pos);
+
+ if(!PyArg_ParseTuple(item, "O&O&",
+ RtiAttributeHandle_FromPython, theAttributes+pos,
+ RegionHandle_FromPython, theRegions+pos))
+ return NULL;
}
- CATCH_RTI_EXCEPTION(ObjectClassNotDefined)
- CATCH_RTI_EXCEPTION(ObjectClassNotPublished)
- CATCH_RTI_EXCEPTION(AttributeNotDefined)
- CATCH_RTI_EXCEPTION(AttributeNotPublished)
- CATCH_RTI_EXCEPTION(RegionNotKnown)
- CATCH_RTI_EXCEPTION(InvalidRegionContext)
- CATCH_RTI_EXCEPTION(FederateNotExecutionMember)
- CATCH_RTI_EXCEPTION(ConcurrentAccessAttempted)
- CATCH_RTI_EXCEPTION(SaveInProgress)
- CATCH_RTI_EXCEPTION(RestoreInProgress)
- CATCH_RTI_EXCEPTION2(RTI::Exception, rti_RTIInternalError)
- try {
- RTI::ObjectHandle result =
self->ob_rtia->registerObjectInstanceWithRegion(theClass,
- theObject, theAttributes, theRegions, theNumberOfHandles);
+ RTI::ObjectHandle result;
+ if (theObject == NULL)
+ result = self->ob_rtia->registerObjectInstanceWithRegion(
+ theClass, theAttributes, theRegions, theNumberOfHandles);
+ else
+ result = self->ob_rtia->registerObjectInstanceWithRegion(
+ theClass, theObject, theAttributes, theRegions,
theNumberOfHandles);
+ return RtiULongHandle_FromULong(&RtiObjectHandleType, result);
}
CATCH_RTI_EXCEPTION(ObjectClassNotDefined)
CATCH_RTI_EXCEPTION(ObjectClassNotPublished)
@@ -1741,9 +1800,16 @@
RTI::ObjectHandle theObject;
RTI::AttributeHandleSet *theAttributes;
+ if(!PyArg_ParseTuple(args, "O&O&O&",
+ RegionHandle_FromPython, &theRegion,
+ RtiObjectHandle_FromPython, &theObject,
+ AttributeHandleSet_FromPython, &theAttributes))
+ return NULL;
+
try {
self->ob_rtia->associateRegionForUpdates(*theRegion, theObject,
*theAttributes);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(ObjectNotKnown)
CATCH_RTI_EXCEPTION(AttributeNotDefined)
@@ -1765,9 +1831,15 @@
RTI::Region *theRegion;
RTI::ObjectHandle theObject;
+ if(!PyArg_ParseTuple(args, "O&O&",
+ RegionHandle_FromPython, &theRegion,
+ RtiObjectHandle_FromPython, &theObject))
+ return NULL;
+
try {
self->ob_rtia->unassociateRegionForUpdates(*theRegion, theObject);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(ObjectNotKnown)
CATCH_RTI_EXCEPTION(InvalidRegionContext)
@@ -1788,11 +1860,20 @@
RTI::ObjectClassHandle theClass;
RTI::Region *theRegion;
RTI::AttributeHandleSet *attributeList;
- RTI::Boolean active = RTI::RTI_TRUE;
+ bool pyActive = true;
+
+ if(!PyArg_ParseTuple(args, "O&O&O&|b",
+ RtiObjectClassHandle_FromPython, &theClass,
+ RegionHandle_FromPython, &theRegion,
+ AttributeHandleSet_FromPython, &attributeList,
+ &pyActive))
+ return NULL;
try {
+ RTI::Boolean active = pyActive ? RTI::RTI_TRUE : RTI::RTI_FALSE;
self->ob_rtia->subscribeObjectClassAttributesWithRegion(theClass,
*theRegion, *attributeList, active);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(ObjectClassNotDefined)
CATCH_RTI_EXCEPTION(AttributeNotDefined)
@@ -1814,9 +1895,15 @@
RTI::ObjectClassHandle theClass;
RTI::Region *theRegion;
+ if(!PyArg_ParseTuple(args, "O&O&",
+ RtiObjectClassHandle_FromPython, &theClass,
+ RegionHandle_FromPython, &theRegion))
+ return NULL;
+
try {
self->ob_rtia->unsubscribeObjectClassWithRegion(theClass, *theRegion);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(ObjectClassNotDefined)
CATCH_RTI_EXCEPTION(RegionNotKnown)
@@ -1836,11 +1923,19 @@
{
RTI::InteractionClassHandle theClass;
RTI::Region *theRegion;
- RTI::Boolean active = RTI::RTI_TRUE;
+ bool pyActive = true;
+
+ if(!PyArg_ParseTuple(args, "O&O&|b",
+ RtiInteractionClassHandle_FromPython, &theClass,
+ RegionHandle_FromPython, &theRegion,
+ &pyActive))
+ return NULL;
try {
+ RTI::Boolean active = pyActive ? RTI::RTI_TRUE : RTI::RTI_FALSE;
self->ob_rtia->subscribeInteractionClassWithRegion(theClass,
*theRegion, active);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(InteractionClassNotDefined)
CATCH_RTI_EXCEPTION(RegionNotKnown)
@@ -1862,9 +1957,15 @@
RTI::InteractionClassHandle theClass;
RTI::Region *theRegion;
+ if(!PyArg_ParseTuple(args, "O&O&",
+ RtiInteractionClassHandle_FromPython, &theClass,
+ RegionHandle_FromPython, &theRegion))
+ return NULL;
+
try {
self->ob_rtia->unsubscribeInteractionClassWithRegion(theClass,
*theRegion);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(InteractionClassNotDefined)
CATCH_RTI_EXCEPTION(InteractionClassNotSubscribed)
@@ -1884,29 +1985,29 @@
{
RTI::InteractionClassHandle theInteraction;
RTI::ParameterHandleValuePairSet *theParameters;
- RTIfedTime theTime; // optional
- const char *theTag;
RTI::Region *theRegion;
+ const char *theTag;
+ RTIfedTime theTime; // optional
- try {
- self->ob_rtia->sendInteractionWithRegion(theInteraction,
*theParameters, theTag, *theRegion);
-
- }
- CATCH_RTI_EXCEPTION(InteractionClassNotDefined)
- CATCH_RTI_EXCEPTION(InteractionClassNotPublished)
- CATCH_RTI_EXCEPTION(InteractionParameterNotDefined)
- CATCH_RTI_EXCEPTION(RegionNotKnown)
- CATCH_RTI_EXCEPTION(InvalidRegionContext)
- CATCH_RTI_EXCEPTION(FederateNotExecutionMember)
- CATCH_RTI_EXCEPTION(ConcurrentAccessAttempted)
- CATCH_RTI_EXCEPTION(SaveInProgress)
- CATCH_RTI_EXCEPTION(RestoreInProgress)
- CATCH_RTI_EXCEPTION2(RTI::Exception, rti_RTIInternalError)
+ if(!PyArg_ParseTuple(args, "O&O&O&s|O&",
+ RtiInteractionClassHandle_FromPython, &theInteraction,
+ ParameterHandleValuePairSet_FromPython, &theParameters,
+ RegionHandle_FromPython, &theRegion,
+ &theTag,
+ RTIfedTime_FromPython, &theTime))
+ return NULL;
try {
- RTI::EventRetractionHandle result =
self->ob_rtia->sendInteractionWithRegion(theInteraction,
- *theParameters, theTime, theTag, *theRegion);
-
+ if(PyTuple_Size(args) == 4) {
+ self->ob_rtia->sendInteractionWithRegion(
+ theInteraction, *theParameters, theTag, *theRegion);
+ return Py_None;
+ }
+ else {
+ RTI::EventRetractionHandle result =
self->ob_rtia->sendInteractionWithRegion(
+ theInteraction, *theParameters, theTime, theTag, *theRegion);
+ return EventRetractionHandle_ToPython(&result);
+ }
}
CATCH_RTI_EXCEPTION(InteractionClassNotDefined)
CATCH_RTI_EXCEPTION(InteractionClassNotPublished)
@@ -1931,9 +2032,16 @@
RTI::AttributeHandleSet *theAttributes;
RTI::Region *theRegion;
+ if(!PyArg_ParseTuple(args, "O&O&O&",
+ RtiObjectClassHandle_FromPython, &theClass,
+ AttributeHandleSet_FromPython, &theAttributes,
+ RegionHandle_FromPython, &theRegion))
+ return NULL;
+
try {
self->ob_rtia->requestClassAttributeValueUpdateWithRegion(theClass,
*theAttributes, *theRegion);
+ return Py_None;
}
CATCH_RTI_EXCEPTION(ObjectClassNotDefined)
CATCH_RTI_EXCEPTION(AttributeNotDefined)
@@ -2194,9 +2302,13 @@
{
const char *theName;
+ if(!PyArg_ParseTuple(args, "s", &theName))
+ return NULL;
+
try {
RTI::SpaceHandle result =
self->ob_rtia->getRoutingSpaceHandle(theName);
+ return RtiSpaceHandle_ToPython(&result);
}
CATCH_RTI_EXCEPTION(NameNotFound)
CATCH_RTI_EXCEPTION(FederateNotExecutionMember)
@@ -2212,6 +2324,10 @@
{
RTI::SpaceHandle theHandle;
+ if(!PyArg_ParseTuple(args, "O&",
+ RtiSpaceHandle_FromPython, &theHandle))
+ return NULL;
+
try {
char *result = self->ob_rtia->getRoutingSpaceName(theHandle);
@@ -2232,9 +2348,15 @@
const char *theName;
RTI::SpaceHandle whichSpace;
+ if(!PyArg_ParseTuple(args, "sO&",
+ &theName,
+ RtiSpaceHandle_FromPython, &whichSpace))
+ return NULL;
+
try {
RTI::DimensionHandle result =
self->ob_rtia->getDimensionHandle(theName, whichSpace);
+ return RtiDimensionHandle_ToPython(&result);
}
CATCH_RTI_EXCEPTION(SpaceNotDefined)
CATCH_RTI_EXCEPTION(NameNotFound)
@@ -2252,6 +2374,11 @@
RTI::DimensionHandle theHandle;
RTI::SpaceHandle whichSpace;
+ if(!PyArg_ParseTuple(args, "O&O&",
+ RtiDimensionHandle_FromPython, &theHandle,
+ RtiSpaceHandle_FromPython, &whichSpace))
+ return NULL;
+
try {
char *result = self->ob_rtia->getDimensionName(theHandle, whichSpace);
@@ -2273,9 +2400,15 @@
RTI::AttributeHandle theHandle;
RTI::ObjectClassHandle whichClass;
+ if(!PyArg_ParseTuple(args, "O&O&",
+ RtiAttributeHandle_FromPython, &theHandle,
+ RtiObjectClassHandle_FromPython, &whichClass))
+ return NULL;
+
try {
RTI::SpaceHandle result =
self->ob_rtia->getAttributeRoutingSpaceHandle(theHandle, whichClass);
+ return RtiSpaceHandle_ToPython(&result);
}
CATCH_RTI_EXCEPTION(ObjectClassNotDefined)
CATCH_RTI_EXCEPTION(AttributeNotDefined)
@@ -2315,9 +2448,14 @@
{
RTI::InteractionClassHandle theHandle;
+ if(!PyArg_ParseTuple(args, "O&",
+ RtiInteractionClassHandle_FromPython, &theHandle))
+ return NULL;
+
try {
RTI::SpaceHandle result =
self->ob_rtia->getInteractionRoutingSpaceHandle(theHandle);
+ return RtiSpaceHandle_ToPython(&result);
}
CATCH_RTI_EXCEPTION(InteractionClassNotDefined)
CATCH_RTI_EXCEPTION(FederateNotExecutionMember)
@@ -2607,40 +2745,6 @@
return __rtia_tick_2(self, args);
}
-static PyObject *
-rtia_getRegionToken(RTIAmbassadorObject *self, PyObject *args)
-{
- RTI::Region *region;
-
- try {
- RTI::RegionToken result = self->ob_rtia->getRegionToken(region);
-
- }
- CATCH_RTI_EXCEPTION(FederateNotExecutionMember)
- CATCH_RTI_EXCEPTION(ConcurrentAccessAttempted)
- CATCH_RTI_EXCEPTION(RegionNotKnown)
- CATCH_RTI_EXCEPTION2(RTI::Exception, rti_RTIInternalError)
-
- return NULL;
-}
-
-static PyObject *
-rtia_getRegion(RTIAmbassadorObject *self, PyObject *args)
-{
- RTI::RegionToken token;
-
- try {
- RTI::Region *result = self->ob_rtia->getRegion(token);
-
- }
- CATCH_RTI_EXCEPTION(FederateNotExecutionMember)
- CATCH_RTI_EXCEPTION(ConcurrentAccessAttempted)
- CATCH_RTI_EXCEPTION(RegionNotKnown)
- CATCH_RTI_EXCEPTION2(RTI::Exception, rti_RTIInternalError)
-
- return NULL;
-}
-
static PyMethodDef rtia_methods[] =
{
{"createFederationExecution",
@@ -2949,12 +3053,6 @@
{"tick",
(PyCFunction)rtia_tick, METH_VARARGS,
""},
- {"getRegionToken",
- (PyCFunction)rtia_getRegionToken, METH_VARARGS,
- ""},
- {"getRegion",
- (PyCFunction)rtia_getRegion, METH_VARARGS,
- ""},
{NULL} // sentinel
};
@@ -3025,4 +3123,4 @@
PyModule_AddObject(module, "RTIAmbassador", (PyObject
*)&RTIAmbassadorObjectType);
}
-// $Id: rtiambassador.cpp,v 1.2 2008/10/02 10:04:04 gotthardp Exp $
+// $Id: rtiambassador.cpp,v 1.3 2008/10/09 16:50:58 gotthardp Exp $
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] applications/PyHLA .cvsignore doc/.cvsignore do...,
certi-cvs <=