org.eodisp.hla.crc
Class FederationExecutionRemoteImpl

java.lang.Object
  extended by org.eodisp.hla.crc.FederationExecutionRemoteImpl
All Implemented Interfaces:
java.rmi.Remote, FederationExecutionRemote

public class FederationExecutionRemoteImpl
extends java.lang.Object
implements FederationExecutionRemote

Version:
$Id:$
Author:
ibirrer

Constructor Summary
FederationExecutionRemoteImpl(FederationExecution federationExecution)
          Constructor
 
Method Summary
 AttributeHandle getAttributeHandle(ObjectClassHandle objectClassHandle, java.lang.String theName)
          Implements HLA service 10.4 (See IEEE Std 1516.1-2000).
 java.lang.String getAttributeName(ObjectClassHandle whichClass, AttributeHandle theHandle)
          Implements HLA service 10.5 (See IEEE Std 1516.1-2000).
 InteractionClassHandle getInteractionClassHandle(java.lang.String theName)
          Implements HLA service 10.6 (See IEEE Std 1516.1-2000).
 java.lang.String getInteractionClassName(InteractionClassHandle theHandle)
          Implements HLA service 10.7 (See IEEE Std 1516.1-2000).
 int getJoinedFederates()
          Returns the number of currently joined federates.
 ObjectClassHandle getKnownObjectClassHandle(ObjectInstanceHandle objectInstanceHandle)
          Implements HLA service 10.16 (See IEEE Std 1516.1-2000).
 ObjectClassHandle getObjectClassHandle(java.lang.String theName)
          Implements HLA service 10.2 (See IEEE Std 1516.1-2000).
 java.lang.String getObjectClassName(ObjectClassHandle theHandle)
          Implements HLA service 10.3 (See IEEE Std 1516.1-2000).
 ObjectInstanceHandle getObjectInstanceHandle(java.lang.String theName)
          Implements HLA service 10.10 (See IEEE Std 1516.1-2000).
 java.lang.String getObjectInstanceName(ObjectInstanceHandle objectInstanceHandle)
          Implements HLA service 10.11 (See IEEE Std 1516.1-2000).
 ParameterHandle getParameterHandle(InteractionClassHandle interactionClassHandle, java.lang.String theName)
          Implements HLA service 10.8 (See IEEE Std 1516.1-2000).
 java.lang.String getParameterName(InteractionClassHandle interactionClassHandle, ParameterHandle parameterHandle)
          Implements HLA service 10.9 (See IEEE Std 1516.1-2000).
 java.util.Map<LrcRemote,java.util.Set<FederateHandle>> getSubscriptions(InteractionClassHandle interactionClassHandle, FederateHandle federateHandle)
          Implements part of the HLA service 6.17 (See IEEE Std 1516.1-2000).
 java.util.Map<LrcRemote,java.util.Map<FederateHandle,AttributeHandle[]>> getSubscriptions(ObjectInstanceHandle objectInstanceHandle, AttributeHandle[] attributeHandles, FederateHandle askingFederateHandle)
          Implements part of the HLA service 6.6 (See IEEE Std 1516.1-2000).
 void publishInteractionClass(InteractionClassHandle interactionClassHandle, FederateHandle federateHandle)
          Implements HLA service 5.4 (See IEEE Std 1516.1-2000).
 void publishObjectClassAttributes(ObjectClassHandle theClass, AttributeHandle[] attributeHandles, FederateHandle federateHandle)
          Implements HLA service 5.2 (See IEEE Std 1516.1-2000).
 void registerFederationSynchronizationPoint(java.lang.String synchronizationPointLabel, byte[] userSuppliedTag, FederateHandle askingFederate)
          Implements HLA service 4.6 (See IEEE Std 1516.1-2000).
 void registerFederationSynchronizationPoint(java.lang.String synchronizationPointLabel, byte[] userSuppliedTag, FederateHandle[] synchronizationSet, FederateHandle askingFederate)
          Implements HLA service 4.6 (See IEEE Std 1516.1-2000).
 ObjectInstanceHandle registerObjectInstance(ObjectClassHandle objectClassHandle, FederateHandle federateHandle)
          Implements HLA service 6.4 (See IEEE Std 1516.1-2000).
 ObjectInstanceHandle registerObjectInstance(ObjectClassHandle objectClassHandle, java.lang.String instanceName, FederateHandle federateHandle)
          Implements HLA service 6.4 (See IEEE Std 1516.1-2000).
 void requestAttributeValueUpdate(ObjectInstanceHandle objectInstanceHandle, AttributeHandle[] attributeHandles, byte[] userSuppliedTag)
          Implements HLA service 6.17 (See IEEE Std 1516.1-2000).
 void resign(ResignAction resignAction, FederateHandle federateHandle)
          Implements HLA service 4.6 (See IEEE Std 1516.1-2000).
 void subscribeInteractionClass(InteractionClassHandle interactionClassHandle, FederateHandle federateHandle)
          Implements HLA service 5.8 (See IEEE Std 1516.1-2000).
 void subscribeObjectClassAttributes(ObjectClassHandle objectClassHandle, AttributeHandle[] attributeHandles, FederateHandle federateHandle)
          Implements HLA service 5.6 (See IEEE Std 1516.1-2000).
 void synchronizationPointAchieved(java.lang.String synchronizationPointLabel, FederateHandle askingFederate)
          Implements HLA service 4.9 (See IEEE Std 1516.1-2000).
 void unpublishInteractionClass(InteractionClassHandle interactionClassHandle, FederateHandle federateHandle)
           
 void unpublishObjectClass(ObjectClassHandle objectClassHandle, FederateHandle federateHandle)
          Implements HLA service 5.3 (See IEEE Std 1516.1-2000).
 void unpublishObjectClassAttributes(ObjectClassHandle objectClassHandle, AttributeHandle[] attributeHandles, FederateHandle federateHandle)
          Implements HLA service 5.3 (See IEEE Std 1516.1-2000).
 void unsubscribeInteractionClass(InteractionClassHandle interactionClassHandle, FederateHandle federateHandle)
          Implements HLA service 5.9 (See IEEE Std 1516.1-2000).
 void unsubscribeObjectClass(ObjectClassHandle objectClassHandle, FederateHandle federateHandle)
          Implements HLA service 5.7 (See IEEE Std 1516.1-2000).
 void unsubscribeObjectClassAttributes(ObjectClassHandle objectClassHandle, AttributeHandle[] attributeHandles, FederateHandle federateHandle)
          Implements HLA service 5.7 (See IEEE Std 1516.1-2000).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FederationExecutionRemoteImpl

public FederationExecutionRemoteImpl(FederationExecution federationExecution)
Constructor

Method Detail

resign

public void resign(ResignAction resignAction,
                   FederateHandle federateHandle)
            throws OwnershipAcquisitionPending,
                   FederateOwnsAttributes,
                   FederateNotExecutionMember
Implements HLA service 4.6 (See IEEE Std 1516.1-2000). Resign from this federation execution

Specified by:
resign in interface FederationExecutionRemote
Parameters:
resignAction - unused
federateHandle - the handle of the federate that shall be resigned
Throws:
OwnershipAcquisitionPending - not implemented
FederateOwnsAttributes - thrown if the federate still owns attributes
FederateNotExecutionMember - if the federate identified by the given handle is not currently joined to this federation execution

registerFederationSynchronizationPoint

public void registerFederationSynchronizationPoint(java.lang.String synchronizationPointLabel,
                                                   byte[] userSuppliedTag,
                                                   FederateHandle askingFederate)
                                            throws SaveInProgress,
                                                   RestoreInProgress,
                                                   FederateNotExecutionMember
Implements HLA service 4.6 (See IEEE Std 1516.1-2000). Registers a new synchronization point for this federation execution

Specified by:
registerFederationSynchronizationPoint in interface FederationExecutionRemote
Parameters:
synchronizationPointLabel - the label of the new synchronization point
userSuppliedTag - user supplied tag
Throws:
FederateNotExecutionMember
SaveInProgress - no implemented
RestoreInProgress - not implemented

registerFederationSynchronizationPoint

public void registerFederationSynchronizationPoint(java.lang.String synchronizationPointLabel,
                                                   byte[] userSuppliedTag,
                                                   FederateHandle[] synchronizationSet,
                                                   FederateHandle askingFederate)
                                            throws SaveInProgress,
                                                   RestoreInProgress,
                                                   FederateNotExecutionMember
Description copied from interface: FederationExecutionRemote
Implements HLA service 4.6 (See IEEE Std 1516.1-2000). Registers a new synchronization point for this federation execution

Specified by:
registerFederationSynchronizationPoint in interface FederationExecutionRemote
Parameters:
synchronizationPointLabel - the label of the new synchronization point
userSuppliedTag - user supplied tag
Throws:
SaveInProgress - no implemented
RestoreInProgress - not implemented
FederateNotExecutionMember

synchronizationPointAchieved

public void synchronizationPointAchieved(java.lang.String synchronizationPointLabel,
                                         FederateHandle askingFederate)
                                  throws SynchronizationPointLabelNotAnnounced,
                                         SaveInProgress,
                                         RestoreInProgress
Implements HLA service 4.9 (See IEEE Std 1516.1-2000). Tells this federation execution that the given federate has achieved the synchronization point with the label synchronizationPointLabel.

Specified by:
synchronizationPointAchieved in interface FederationExecutionRemote
Parameters:
synchronizationPointLabel - the label of the synchronization to be achieved
askingFederate - the handle of the federate that achieved the synchronization point
Throws:
SynchronizationPointLabelNotAnnounced - the synchronization point has never been announced, i.e. #registerFederationSynchronizationPoint(String, byte[]) was not called with the the synchronizationPointLabel given here.
SaveInProgress - no implemented
RestoreInProgress - not implemented

getObjectClassHandle

public ObjectClassHandle getObjectClassHandle(java.lang.String theName)
                                       throws NameNotFound
Implements HLA service 10.2 (See IEEE Std 1516.1-2000). Returns the object class handle of the object class with the given name.

Specified by:
getObjectClassHandle in interface FederationExecutionRemote
Parameters:
theName - the fully qualified name of the object class.
Returns:
the object class handle of the object class with the given name
Throws:
NameNotFound - the FOM does not contain a class with this fully qualified name

getObjectClassName

public java.lang.String getObjectClassName(ObjectClassHandle theHandle)
                                    throws ObjectClassNotDefined
Implements HLA service 10.3 (See IEEE Std 1516.1-2000). Returns the fully qualified name of this object class. See section 10.1.1 in IEEE 1516.1-2000. Always starts with the string HLAobjectRoot.

Specified by:
getObjectClassName in interface FederationExecutionRemote
Parameters:
theHandle - the object class handle for which the name shall be returned
Returns:
the fully qualified name of the object class identified by the given handle
Throws:
ObjectClassNotDefined - the given object class handle does not identify an object class of this federation execution.

getAttributeHandle

public AttributeHandle getAttributeHandle(ObjectClassHandle objectClassHandle,
                                          java.lang.String theName)
                                   throws ObjectClassNotDefined,
                                          NameNotFound
Implements HLA service 10.4 (See IEEE Std 1516.1-2000). Returns the attribute handle that is defined in the object class identified by the given object class handle and which name equals the given name.

Specified by:
getAttributeHandle in interface FederationExecutionRemote
Parameters:
objectClassHandle - the object class handle the attribute is defined in
theName - the name of the attribute for which the attribute handle shall be returned
Returns:
the attribute handle that is defined in the object class identified by the given object class handle and which name equals the given name.
Throws:
ObjectClassNotDefined - the given object class handle does not identify an object class of this federation execution.
NameNotFound - there is no attribute defined with the given name in the object class identified by the given object class handle handle.

getAttributeName

public java.lang.String getAttributeName(ObjectClassHandle whichClass,
                                         AttributeHandle theHandle)
                                  throws ObjectClassNotDefined,
                                         InvalidAttributeHandle,
                                         AttributeNotDefined
Implements HLA service 10.5 (See IEEE Std 1516.1-2000). Returns the name of the attribute identified by the given object class and attribute handle.

Specified by:
getAttributeName in interface FederationExecutionRemote
Parameters:
whichClass - the object class
theHandle - the handle of the attribute
Returns:
the name of the attribute identified by the given object class and attribute handle.
Throws:
ObjectClassNotDefined - the given object class handle does not identify an object class of this federation execution.
InvalidAttributeHandle - the given attribute handle is not valid
AttributeNotDefined - the attribute is not defined for the class identified with the given object class handle

getInteractionClassHandle

public InteractionClassHandle getInteractionClassHandle(java.lang.String theName)
                                                 throws NameNotFound
Implements HLA service 10.6 (See IEEE Std 1516.1-2000). Returns the handle of the interaction class with the given fully qualified name

Specified by:
getInteractionClassHandle in interface FederationExecutionRemote
Parameters:
theName - the fully qualified name of the interaction for which the handle shall be returned.
Returns:
the handle of the interaction class with the given fully qualified name
Throws:
NameNotFound - no interaction class is defined in the FOM with the given name

getInteractionClassName

public java.lang.String getInteractionClassName(InteractionClassHandle theHandle)
                                         throws InteractionClassNotDefined
Implements HLA service 10.7 (See IEEE Std 1516.1-2000). Returns the name of the interaction class identified by the given handle.

Specified by:
getInteractionClassName in interface FederationExecutionRemote
Parameters:
theHandle - the interaction class handle for which the name shall be returned.
Returns:
the name of the interaction class identified by the given handle
Throws:
InteractionClassNotDefined - the given interaction class handle is not defined for this federation execution

getParameterHandle

public ParameterHandle getParameterHandle(InteractionClassHandle interactionClassHandle,
                                          java.lang.String theName)
                                   throws NameNotFound,
                                          InteractionClassNotDefined
Implements HLA service 10.8 (See IEEE Std 1516.1-2000). Returns the parameter handle of the parameter that is defined within the given interaction class and equals to the given name.

Specified by:
getParameterHandle in interface FederationExecutionRemote
Parameters:
interactionClassHandle - the interaction class the parameter is defined in
theName - the name of the parameter
Returns:
the parameter handle of the parameter that is defined within the given interaction class and equals to the given name.
Throws:
NameNotFound - the interaction class has not defined a parameter with the given name
InteractionClassNotDefined - the given interaction class handle is not defined for this federation execution

getParameterName

public java.lang.String getParameterName(InteractionClassHandle interactionClassHandle,
                                         ParameterHandle parameterHandle)
                                  throws InteractionClassNotDefined,
                                         InteractionParameterNotDefined,
                                         InvalidParameterHandle
Implements HLA service 10.9 (See IEEE Std 1516.1-2000). Returns the fully qualified name of the parameter identified by the given interaction class handle and parameter handle.

Specified by:
getParameterName in interface FederationExecutionRemote
Parameters:
interactionClassHandle - the interaction class handle containing the parameter
parameterHandle - the parameter handle for which the name shall be returned
Returns:
the fully qualified name of the parameter identified by the given interaction class handle and parameter handle.
Throws:
InteractionClassNotDefined - the interaction class has not been defined in this federation execution
InteractionParameterNotDefined - the interaction class identified by the given interaction class handle has not defined a parameter with the given parameter handle.
InvalidParameterHandle - the parameter has not been defined of is not valid

getObjectInstanceHandle

public ObjectInstanceHandle getObjectInstanceHandle(java.lang.String theName)
                                             throws ObjectInstanceNotKnown
Implements HLA service 10.10 (See IEEE Std 1516.1-2000). Returns the object instance handle of the object instance that was registered with the given name.

Specified by:
getObjectInstanceHandle in interface FederationExecutionRemote
Parameters:
theName - the name of the object instance for which the object instance handle shall be returned
Returns:
the object instance handle of the object instance that was registered with the given name
Throws:
ObjectInstanceNotKnown - no object instance was previously registered with the name given
See Also:
RTIambassador.registerObjectInstance(ObjectClassHandle, String)

getObjectInstanceName

public java.lang.String getObjectInstanceName(ObjectInstanceHandle objectInstanceHandle)
                                       throws ObjectInstanceNotKnown,
                                              java.rmi.RemoteException
Implements HLA service 10.11 (See IEEE Std 1516.1-2000). Returns the name of the object instance identified by the given object instance handle.

Specified by:
getObjectInstanceName in interface FederationExecutionRemote
Parameters:
objectInstanceHandle - the handle identifying the object instance for which the name shall be returned
Returns:
the name of the object instance identified by the given object instance handle.
Throws:
ObjectInstanceNotKnown - the object instance handle is not valid
java.rmi.RemoteException - RMI remote exception happened while calling this method

getKnownObjectClassHandle

public ObjectClassHandle getKnownObjectClassHandle(ObjectInstanceHandle objectInstanceHandle)
                                            throws ObjectInstanceNotKnown
Implements HLA service 10.16 (See IEEE Std 1516.1-2000). Returns the object class handle of the object instance identified by the given object instance handle. This is the object class given when the object instance was registered.

Specified by:
getKnownObjectClassHandle in interface FederationExecutionRemote
Parameters:
objectInstanceHandle - the object instance handle identifying the object instance for which its object class shall be returned
Returns:
the object class handle of the object instance identified by the given object instance handle
Throws:
ObjectInstanceNotKnown - the given object instance is not valid

publishObjectClassAttributes

public void publishObjectClassAttributes(ObjectClassHandle theClass,
                                         AttributeHandle[] attributeHandles,
                                         FederateHandle federateHandle)
                                  throws ObjectClassNotDefined,
                                         AttributeNotDefined,
                                         FederateNotExecutionMember,
                                         SaveInProgress,
                                         RestoreInProgress,
                                         InvalidFederateHandle,
                                         InvalidAttributeHandle,
                                         InvalidObjectClassHandle
Implements HLA service 5.2 (See IEEE Std 1516.1-2000). Adds the given attributes to the published attributes of the given federate.

Specified by:
publishObjectClassAttributes in interface FederationExecutionRemote
Parameters:
theClass - the object class the attributes are defined in
attributeHandles - a list of attributes to be added to the published attributes of the given federate
federateHandle - the handle of the federate that publishes the given attributes
Throws:
InvalidAttributeHandle
InvalidFederateHandle
InvalidObjectClassHandle
ObjectClassNotDefined - the object class given by the object class handle is not defined in the FOM of this federation execution
AttributeNotDefined - one or more of the attributes are not defined in the given object class
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution
SaveInProgress - not implemented
RestoreInProgress - not implemented

unpublishObjectClass

public void unpublishObjectClass(ObjectClassHandle objectClassHandle,
                                 FederateHandle federateHandle)
                          throws ObjectClassNotDefined,
                                 FederateNotExecutionMember
Implements HLA service 5.3 (See IEEE Std 1516.1-2000). Remove all attributes of the given class from the published attributes of the given federate.

Specified by:
unpublishObjectClass in interface FederationExecutionRemote
Parameters:
objectClassHandle - the object class that contains the attributes which shall be removed from the published attributes
federateHandle - the handle of the federate that shall unpublish the given attributes
Throws:
ObjectClassNotDefined - the object class given by the object class handle is not defined in the FOM of this federation execution
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution

unpublishObjectClassAttributes

public void unpublishObjectClassAttributes(ObjectClassHandle objectClassHandle,
                                           AttributeHandle[] attributeHandles,
                                           FederateHandle federateHandle)
                                    throws ObjectClassNotDefined,
                                           AttributeNotDefined,
                                           FederateNotExecutionMember,
                                           InvalidAttributeHandle
Implements HLA service 5.3 (See IEEE Std 1516.1-2000). Un-publishes the given attributes at the given federate.

Specified by:
unpublishObjectClassAttributes in interface FederationExecutionRemote
Parameters:
objectClassHandle - the object class that defines the given attributes
federateHandle - the federate that un-publishes the given attributes
Throws:
ObjectClassNotDefined - if the given object class is not defined in the FOM of this federation executoin
AttributeNotDefined - if one of the attributes is not defined
FederateNotExecutionMember - if the given federat is not joined to this federation execution
InvalidAttributeHandle - if one of the attributes is not valid

publishInteractionClass

public void publishInteractionClass(InteractionClassHandle interactionClassHandle,
                                    FederateHandle federateHandle)
                             throws InteractionClassNotDefined,
                                    FederateNotExecutionMember,
                                    SaveInProgress,
                                    RestoreInProgress
Implements HLA service 5.4 (See IEEE Std 1516.1-2000). Adds the given interaction class to the published interactions of the given federate

Specified by:
publishInteractionClass in interface FederationExecutionRemote
Parameters:
interactionClassHandle - the interaction to be added to the to the published interactions of the given federate
federateHandle - the handle of the federate that wants to publish the given interaction
Throws:
InteractionClassNotDefined - the interaction class given by the interaction class handle is not defined in the FOM of this federation execution
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution
SaveInProgress - not implemented
RestoreInProgress - not implemented

unpublishInteractionClass

public void unpublishInteractionClass(InteractionClassHandle interactionClassHandle,
                                      FederateHandle federateHandle)
                               throws InteractionClassNotDefined,
                                      FederateNotExecutionMember,
                                      SaveInProgress,
                                      RestoreInProgress
Specified by:
unpublishInteractionClass in interface FederationExecutionRemote
Throws:
InteractionClassNotDefined
FederateNotExecutionMember
SaveInProgress
RestoreInProgress

subscribeObjectClassAttributes

public void subscribeObjectClassAttributes(ObjectClassHandle objectClassHandle,
                                           AttributeHandle[] attributeHandles,
                                           FederateHandle federateHandle)
                                    throws ObjectClassNotDefined,
                                           AttributeNotDefined,
                                           FederateNotExecutionMember,
                                           InvalidAttributeHandle
Implements HLA service 5.6 (See IEEE Std 1516.1-2000). Subscribes the given federate with the given object class attributes.

Specified by:
subscribeObjectClassAttributes in interface FederationExecutionRemote
Parameters:
objectClassHandle - the object class the attributes are defined in
attributeHandles - the object class attributes that the given federate shall be subscribed to
federateHandle - the federate that shall subscribe to the given object class attributes
Throws:
ObjectClassNotDefined - the object class given by the object class handle is not defined in the FOM of this federation execution
AttributeNotDefined - one or more of the attributes are not defined in the given object class
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution
InvalidAttributeHandle - the given attribute handle is not valid

unsubscribeObjectClassAttributes

public void unsubscribeObjectClassAttributes(ObjectClassHandle objectClassHandle,
                                             AttributeHandle[] attributeHandles,
                                             FederateHandle federateHandle)
                                      throws ObjectClassNotDefined,
                                             AttributeNotDefined,
                                             FederateNotExecutionMember,
                                             InvalidAttributeHandle
Implements HLA service 5.7 (See IEEE Std 1516.1-2000). Unsubscribes the given federate from the given object class attributes.

Specified by:
unsubscribeObjectClassAttributes in interface FederationExecutionRemote
Parameters:
objectClassHandle - the object class the attributes are defined in
attributeHandles - the object class attributes that the given federate shall be unsubscribed from
federateHandle - the federate that shall unsubscribe from the given object class attributes
Throws:
InvalidAttributeHandle
ObjectClassNotDefined - the object class given by the object class handle is not defined in the FOM of this federation execution
AttributeNotDefined - one or more of the attributes are not defined in the given object class
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution

unsubscribeObjectClass

public void unsubscribeObjectClass(ObjectClassHandle objectClassHandle,
                                   FederateHandle federateHandle)
                            throws ObjectClassNotDefined,
                                   FederateNotExecutionMember
Implements HLA service 5.7 (See IEEE Std 1516.1-2000). Unsubscribes the given federate from all attributes defined in the given object class

Specified by:
unsubscribeObjectClass in interface FederationExecutionRemote
Parameters:
objectClassHandle - the object class the attributes are defined in
federateHandle - the federate that shall unsubscribe from the given object class attributes
Throws:
ObjectClassNotDefined - the object class given by the object class handle is not defined in the FOM of this federation execution
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution

subscribeInteractionClass

public void subscribeInteractionClass(InteractionClassHandle interactionClassHandle,
                                      FederateHandle federateHandle)
                               throws InteractionClassNotDefined,
                                      FederateServiceInvocationsAreBeingReportedViaMOM,
                                      FederateNotExecutionMember
Implements HLA service 5.8 (See IEEE Std 1516.1-2000). Subscribes the given federate to the given interaction class.

Specified by:
subscribeInteractionClass in interface FederationExecutionRemote
Parameters:
interactionClassHandle - the interaction class handle to be subscribed to
federateHandle - the federate that subscribes to the interaction class
Throws:
InteractionClassNotDefined - if the interfaction class is not defined in the FOM of this federation execution
FederateServiceInvocationsAreBeingReportedViaMOM
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution

unsubscribeInteractionClass

public void unsubscribeInteractionClass(InteractionClassHandle interactionClassHandle,
                                        FederateHandle federateHandle)
                                 throws InteractionClassNotDefined,
                                        FederateNotExecutionMember,
                                        SaveInProgress,
                                        RestoreInProgress
Implements HLA service 5.9 (See IEEE Std 1516.1-2000). Unsubscribes the given federate from the given interaction class.

Specified by:
unsubscribeInteractionClass in interface FederationExecutionRemote
Parameters:
interactionClassHandle - the interaction class the given federate shall be subscribed to
federateHandle - the federate that shall be subscribed to the given interaction class
Throws:
InteractionClassNotDefined - the interaction class given by the interaction class handle is not defined in the FOM of this federation execution
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution
SaveInProgress - not implemented
RestoreInProgress - not implemented

registerObjectInstance

public ObjectInstanceHandle registerObjectInstance(ObjectClassHandle objectClassHandle,
                                                   FederateHandle federateHandle)
                                            throws ObjectClassNotDefined,
                                                   ObjectClassNotPublished,
                                                   FederateNotExecutionMember,
                                                   InvalidObjectClassHandle
Implements HLA service 6.4 (See IEEE Std 1516.1-2000). Registers a new object instance of the given object class with the given federate.

Specified by:
registerObjectInstance in interface FederationExecutionRemote
Parameters:
objectClassHandle - the object class of the instance to be registered.
federateHandle - the federate that registers the new instance
Returns:
a handle to the newly registered instance
Throws:
InvalidObjectClassHandle
ObjectClassNotDefined - the object class given by the object class handle is not defined in the FOM of this federation execution
ObjectClassNotPublished - the federate (given with the federate handle) does not publish the given object class and can therefore not register an instance
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution

registerObjectInstance

public ObjectInstanceHandle registerObjectInstance(ObjectClassHandle objectClassHandle,
                                                   java.lang.String instanceName,
                                                   FederateHandle federateHandle)
                                            throws ObjectClassNotDefined,
                                                   ObjectClassNotPublished,
                                                   ObjectInstanceNameNotReserved,
                                                   ObjectInstanceNameInUse,
                                                   FederateNotExecutionMember,
                                                   SaveInProgress,
                                                   RestoreInProgress
Description copied from interface: FederationExecutionRemote
Implements HLA service 6.4 (See IEEE Std 1516.1-2000). Registers a new object instance of the given object class with the given federate and the given name.

Specified by:
registerObjectInstance in interface FederationExecutionRemote
Throws:
ObjectClassNotDefined - the object class given by the object class handle is not defined in the FOM of this federation execution
ObjectClassNotPublished - the federate (given with the federate handle) does not publish the given object class and can therefore not register an instance
ObjectInstanceNameNotReserved - The object instance name was not reserved.
ObjectInstanceNameInUse - the object instance name was already coadunated with another object instance
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution
SaveInProgress
RestoreInProgress

getSubscriptions

public java.util.Map<LrcRemote,java.util.Map<FederateHandle,AttributeHandle[]>> getSubscriptions(ObjectInstanceHandle objectInstanceHandle,
                                                                                                 AttributeHandle[] attributeHandles,
                                                                                                 FederateHandle askingFederateHandle)
                                                                                          throws AttributeNotDefined,
                                                                                                 AttributeNotOwned,
                                                                                                 FederateNotExecutionMember,
                                                                                                 InvalidAttributeHandle,
                                                                                                 ObjectInstanceNotKnown
Implements part of the HLA service 6.6 (See IEEE Std 1516.1-2000). This method does two things at once, it searches and returns the federates which are subscribed to at least one of the given attributes and checks if the federate identified by the given federate handle parameter owns all the attributes of the given object instance. This is due to performance reasons, i.e. it avoids two remote method calls. Note that subscriptions made by the asking federates are not included in the result.

Specified by:
getSubscriptions in interface FederationExecutionRemote
Parameters:
objectInstanceHandle - the object instance handle of the attributes to checked for ownership.
attributeHandles - the attribute handles to be checked for subscribed federates.
askingFederateHandle - the federate asking for the subscribed federates
Returns:
A map that contains all federate han TODO
Throws:
AttributeNotDefined - one or more of the attributes in the attribute value map are not defined in the class of the instance
AttributeNotOwned - one or more of the attributes in the attribute value map are not owned by the given federate
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution
InvalidAttributeHandle - If one of the attribute handles given is not valid
ObjectInstanceNotKnown - if the given object instance handle is not identifying a registered object instance of this federation execution

getSubscriptions

public java.util.Map<LrcRemote,java.util.Set<FederateHandle>> getSubscriptions(InteractionClassHandle interactionClassHandle,
                                                                               FederateHandle federateHandle)
                                                                        throws InteractionClassNotDefined,
                                                                               InteractionClassNotPublished,
                                                                               FederateNotExecutionMember
Implements part of the HLA service 6.17 (See IEEE Std 1516.1-2000). This method does two things at once, it searches and returns the federates which are subscribed to the given interaction class and checks if the federate identified by the given federate handle parameter publishes the given interaction class. This is due to performance reasons, i.e. it avoids two remote method calls. Note that subscriptions made by the asking federates are not included in the result.

Specified by:
getSubscriptions in interface FederationExecutionRemote
Parameters:
interactionClassHandle - the interaction class handle to be checked for subscribed federates
Throws:
InteractionClassNotDefined - the given interaction class is not defined in the FOM of this federation execution
FederateNotExecutionMember - the federate identified with the given federate handle is not joined tho this federation execution
InteractionClassNotPublished

requestAttributeValueUpdate

public void requestAttributeValueUpdate(ObjectInstanceHandle objectInstanceHandle,
                                        AttributeHandle[] attributeHandles,
                                        byte[] userSuppliedTag)
                                 throws ObjectInstanceNotKnown,
                                        AttributeNotDefined,
                                        SaveInProgress,
                                        RestoreInProgress
Implements HLA service 6.17 (See IEEE Std 1516.1-2000). Requests that the federate(s) owning the given attributes on the given instance to update the values.

Specified by:
requestAttributeValueUpdate in interface FederationExecutionRemote
Parameters:
objectInstanceHandle - the object instance handle for which updates shall be provided
attributeHandles - the attributes for which updates shall be provided
userSuppliedTag - user supplied tag (delivered as is to the applicable federates)
Throws:
ObjectInstanceNotKnown - the object instance has not been register previously
AttributeNotDefined - on or more of the given attributes are not defined for the object class of the given object instance
SaveInProgress - not implemented
RestoreInProgress - not implemented
See Also:
LrcRemote.provideAttributeValueUpdate(ObjectInstanceHandle, AttributeHandleSet, byte[], FederateHandle[], String)

getJoinedFederates

public int getJoinedFederates()
                       throws java.rmi.RemoteException
Returns the number of currently joined federates.

Specified by:
getJoinedFederates in interface FederationExecutionRemote
Returns:
the number of currently joined federates.
Throws:
java.rmi.RemoteException