org.eodisp.hla.lrc
Class LrcRemoteImpl

java.lang.Object
  extended by org.eodisp.hla.lrc.LrcRemoteImpl
All Implemented Interfaces:
java.rmi.Remote, LrcRemote

public class LrcRemoteImpl
extends java.lang.Object
implements LrcRemote

Version:
$Id:$
Author:
ibirrer

Field Summary
 
Fields inherited from interface org.eodisp.hla.common.lrc.LrcRemote
REGISTRY_NAME
 
Constructor Summary
LrcRemoteImpl(Lrc lrc)
           
 
Method Summary
 void announceSynchronizationPoint(java.lang.String synchronizationPointLabel, byte[] userSuppliedTag, FederateHandle[] federateHandles, java.lang.String federationExecutionName)
          HLA service 4.8 (See IEEE Std 1516.1-2000).
 void discoverObjectInstance(ObjectInstanceHandle theObject, ObjectClassHandle theObjectClass, java.lang.String objectName, FederateHandle[] federateHandles, java.lang.String federationExecutionName)
          HLA service 6.5 (See IEEE Std 1516.1-2000).
 void federationSynchronized(java.lang.String synchronizationPointLabel, FederateHandle[] federateHandles, java.lang.String federationExecutionName, byte[] userSuppliedTag)
          HLA service 4.10 (See IEEE Std 1516.1-2000).
 void provideAttributeValueUpdate(ObjectInstanceHandle theObject, AttributeHandleSet theAttributes, byte[] userSuppliedTag, FederateHandle[] federateHandles, java.lang.String federationExecutionName)
          HLA service 6.18 (See IEEE Std 1516.1-2000).
 void receiveInteraction(InteractionClassHandle interactionClass, ParameterHandleValueMap theParameters, byte[] userSuppliedTag, OrderType sentOrdering, TransportationType theTransport, FederateHandle[] federateHandles, java.lang.String federationExecutionName)
          HLA service 6.9 (See IEEE Std 1516.1-2000).
 void reflectAttributeValues(ObjectInstanceHandle objectInstanceHandle, java.util.Map<AttributeHandle,byte[]> values, byte[] userSuppliedTag, java.util.Map<FederateHandle,AttributeHandle[]> federateSubscriptions, java.lang.String federationExecutionName)
          HLA service 6.7 (See IEEE Std 1516.1-2000).
 void startRegistrationForObjectClass(java.lang.String federationExecutionName, ObjectClassHandle objectClassHandle, FederateHandle[] federateHandles)
           
 void synchronizationPointRegistrationFailed(java.lang.String synchronizationPointLabel, SynchronizationPointFailureReason reason, FederateHandle federateHandle, java.lang.String federationExecutionName)
          HLA service 4.7 (See IEEE Std 1516.1-2000).
 void synchronizationPointRegistrationSucceeded(java.lang.String synchronizationPointLabel, FederateHandle federateHandle, java.lang.String federationExecutionName)
          HLA service 4.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

LrcRemoteImpl

public LrcRemoteImpl(Lrc lrc)
Method Detail

synchronizationPointRegistrationSucceeded

public void synchronizationPointRegistrationSucceeded(java.lang.String synchronizationPointLabel,
                                                      FederateHandle federateHandle,
                                                      java.lang.String federationExecutionName)
                                               throws FederateInternalError,
                                                      java.rmi.RemoteException
Description copied from interface: LrcRemote
HLA service 4.7 (See IEEE Std 1516.1-2000). Confirm that the registration of the synchronization point was successful.

Specified by:
synchronizationPointRegistrationSucceeded in interface LrcRemote
Parameters:
synchronizationPointLabel - the label of the synchronization point which registration has succeeded.
federateHandle - the federate for which the synchronization point registration succeeded.
federationExecutionName - the name of the federation execution this call is applicable for
Throws:
FederateInternalError - Exceptions thrown by the federation implementation TODO: use a w
java.rmi.RemoteException - RMI remote exception happened while calling this method

synchronizationPointRegistrationFailed

public void synchronizationPointRegistrationFailed(java.lang.String synchronizationPointLabel,
                                                   SynchronizationPointFailureReason reason,
                                                   FederateHandle federateHandle,
                                                   java.lang.String federationExecutionName)
                                            throws FederateInternalError,
                                                   java.rmi.RemoteException
Description copied from interface: LrcRemote
HLA service 4.7 (See IEEE Std 1516.1-2000). Report that a synchronization point could not be registered.

Specified by:
synchronizationPointRegistrationFailed in interface LrcRemote
Parameters:
synchronizationPointLabel - the label of the synchronization point which registration has failed.
federateHandle - the federate, for which the synchronization point registration failed.
federationExecutionName - the name of the federation execution this call is applicable for
Throws:
FederateInternalError - Exceptions thrown by the federation implementation TODO: use a wrapper exception here?
java.rmi.RemoteException - RMI remote exception happened while calling this method

announceSynchronizationPoint

public void announceSynchronizationPoint(java.lang.String synchronizationPointLabel,
                                         byte[] userSuppliedTag,
                                         FederateHandle[] federateHandles,
                                         java.lang.String federationExecutionName)
                                  throws FederateInternalError,
                                         java.rmi.RemoteException
Description copied from interface: LrcRemote
HLA service 4.8 (See IEEE Std 1516.1-2000). Announces a new synchronization point to the given federates

Specified by:
announceSynchronizationPoint in interface LrcRemote
Parameters:
synchronizationPointLabel - the label of the synchronization point
userSuppliedTag - user supplied tag
federateHandles - the federates which shall be informed of a new synchronization point
Throws:
FederateInternalError - Exceptions thrown by the federation implementation TODO: use a wrapper exception here?
java.rmi.RemoteException - RMI remote exception happened while calling this method

federationSynchronized

public void federationSynchronized(java.lang.String synchronizationPointLabel,
                                   FederateHandle[] federateHandles,
                                   java.lang.String federationExecutionName,
                                   byte[] userSuppliedTag)
                            throws FederateInternalError,
                                   java.rmi.RemoteException
Description copied from interface: LrcRemote
HLA service 4.10 (See IEEE Std 1516.1-2000). Inform the given federates that a federation execution has synchronized at the given synchronization point.

Specified by:
federationSynchronized in interface LrcRemote
Parameters:
synchronizationPointLabel - the label of the synchronization point
federateHandles - the federates which shall be informed that the federation execution has synchronized
federationExecutionName - the name of the federation execution this call is applicable for
Throws:
FederateInternalError - Exceptions thrown by the federation implementation TODO: use a wrapper exception here?
java.rmi.RemoteException - RMI remote exception happened while calling this method

discoverObjectInstance

public void discoverObjectInstance(ObjectInstanceHandle theObject,
                                   ObjectClassHandle theObjectClass,
                                   java.lang.String objectName,
                                   FederateHandle[] federateHandles,
                                   java.lang.String federationExecutionName)
                            throws CouldNotDiscover,
                                   ObjectClassNotRecognized,
                                   FederateInternalError,
                                   java.rmi.RemoteException
Description copied from interface: LrcRemote
HLA service 6.5 (See IEEE Std 1516.1-2000). Informs the given federates about a newly registered object instance.

Specified by:
discoverObjectInstance in interface LrcRemote
Parameters:
theObject - the object instance that was registered by another federate
theObjectClass - the object class of the newly registered instance
objectName - the unique name of the newly registered instance
federateHandles - the federates that shall be informed about the newly registered instance
federationExecutionName - the name of the federation execution this call is applicable for
Throws:
CouldNotDiscover - TODO: check
ObjectClassNotRecognized - TODO: check
FederateInternalError - Exceptions thrown by the federation implementation TODO: use a wrapper exception here?
java.rmi.RemoteException - RMI remote exception happened while calling this method

receiveInteraction

public void receiveInteraction(InteractionClassHandle interactionClass,
                               ParameterHandleValueMap theParameters,
                               byte[] userSuppliedTag,
                               OrderType sentOrdering,
                               TransportationType theTransport,
                               FederateHandle[] federateHandles,
                               java.lang.String federationExecutionName)
                        throws InteractionClassNotRecognized,
                               InteractionParameterNotRecognized,
                               InteractionClassNotSubscribed,
                               FederateInternalError,
                               java.rmi.RemoteException
Description copied from interface: LrcRemote
HLA service 6.9 (See IEEE Std 1516.1-2000). Informs the given federates about an interaction sent by another federate.

Specified by:
receiveInteraction in interface LrcRemote
Parameters:
interactionClass - the interaction class sent by another federate
theParameters - parameter values for the received interaction
userSuppliedTag - the tag supplied by the sending federate
sentOrdering - not implemented
theTransport - not implemented
federateHandles - the federates that shall receive the interaction on this LRC
federationExecutionName - the name of the federation execution this call is applicable for
Throws:
InteractionClassNotRecognized - TODO: check
InteractionParameterNotRecognized - TODO: check
InteractionClassNotSubscribed - TODO: check
FederateInternalError - Exceptions thrown by the federation implementation TODO: use a wrapper exception here?
java.rmi.RemoteException - RMI remote exception happened while calling this method

provideAttributeValueUpdate

public void provideAttributeValueUpdate(ObjectInstanceHandle theObject,
                                        AttributeHandleSet theAttributes,
                                        byte[] userSuppliedTag,
                                        FederateHandle[] federateHandles,
                                        java.lang.String federationExecutionName)
                                 throws ObjectInstanceNotKnown,
                                        AttributeNotRecognized,
                                        AttributeNotOwned,
                                        FederateInternalError,
                                        java.rmi.RemoteException
Description copied from interface: LrcRemote
HLA service 6.18 (See IEEE Std 1516.1-2000). Requests the given federate to call RTIambassador.updateAttributeValues(ObjectInstanceHandle, AttributeHandleValueMap, byte[]) for all values it owns of the given object instance.

Specified by:
provideAttributeValueUpdate in interface LrcRemote
Parameters:
theObject - the object instance for which the federate shall call update attribute values
theAttributes - the attributes for which for which the given federate shall provide updates. TODO: Do we need to deliver all attributes originally requested or only the ones owned by the given federate(s)?
userSuppliedTag - user supplied tag
federateHandles - the federate(s) which own the given object and shall provide updates
federationExecutionName - the name of the federation execution this call is applicable for
Throws:
ObjectInstanceNotKnown - TODO: check
AttributeNotRecognized - TODO: check
AttributeNotOwned - TODO: check
FederateInternalError - Exceptions thrown by the federation implementation TODO: use a wrapper exception here?
java.rmi.RemoteException - RMI remote exception happened while calling this method

startRegistrationForObjectClass

public void startRegistrationForObjectClass(java.lang.String federationExecutionName,
                                            ObjectClassHandle objectClassHandle,
                                            FederateHandle[] federateHandles)
                                     throws ObjectClassNotPublished,
                                            FederateInternalError
Specified by:
startRegistrationForObjectClass in interface LrcRemote
Throws:
ObjectClassNotPublished
FederateInternalError

reflectAttributeValues

public void reflectAttributeValues(ObjectInstanceHandle objectInstanceHandle,
                                   java.util.Map<AttributeHandle,byte[]> values,
                                   byte[] userSuppliedTag,
                                   java.util.Map<FederateHandle,AttributeHandle[]> federateSubscriptions,
                                   java.lang.String federationExecutionName)
                            throws ObjectInstanceNotKnown,
                                   AttributeNotRecognized,
                                   AttributeNotSubscribed,
                                   FederateInternalError,
                                   java.rmi.RemoteException
Description copied from interface: LrcRemote
HLA service 6.7 (See IEEE Std 1516.1-2000). Informs the given federates about attribute value updates. TODO: Consider other ways of delivering data from one LRC to another.

Specified by:
reflectAttributeValues in interface LrcRemote
userSuppliedTag - user supplied tag
federationExecutionName - the name of the federation execution this call is applicable for
Throws:
ObjectInstanceNotKnown - TODO: check
AttributeNotRecognized - TODO: check
AttributeNotSubscribed - TODO: check
FederateInternalError - Exceptions thrown by the federation implementation TODO: use a wrapper exception here?
java.rmi.RemoteException - RMI remote exception happened while calling this method