Unigine::HLA::HLAClientInterface Class
Header: | #include <HLAClientInterface.h> |
This class represents the HLA Client interface.
HLAClient plugin must be loaded.
HLAClientInterface Class
Members
static HLAClientInterfacePtr create()
int init(int version, const char * fom_path, const char * federate_name, const char * federation_execution_name)
Initializes the HLA Client using the given parameters.Arguments
- int version - Callback type. One of the following values: RTI13, RTI1516, or RTI1516E.
- const char * fom_path - path to FOM file (.fed or .xml, depends on version)
- const char * federate_name - name of the current instance
- const char * federation_execution_name - name of the group of federates with the same FOM. OpenRTI uses names like "rti://fedExecName", Pitch RTI uses simple "fedExecName".
Return value
1 if the HLA Client was initialized successfully; otherwise, 0.void setTimeRegulation(bool start_constrained, bool start_regulating)
Sets time management mode for the federate. In general, a federate may be "regulating," "constrained," "regulating and constrained," or "neither regulating nor constrained.Arguments
- bool start_constrained - Constrained flag: true if the federate is a constrained one (can receive TSO messages); otherwise, false.
- bool start_regulating - Regulating flag: true if the federate is a regulating one (can send TSO messages); otherwise, false.
int isConstrained()
Returns a value indicating if the federate is a constrained one, i.e. can receive TSO (time-stamped order) messages.Return value
1 if the federate is a constrained one; otherwise, 0.int isRegulating()
Returns a value indicating if the federate is a regulating one, i.e. can send TSO (time-stamped order) messages.Return value
1 if the federate is a regulating one; otherwise, 0.void setTimeStep(double time_step)
Sets a lookahead value for a regulating federate, this value determines the frequency of calling the timeAdvanceRequest() method.Arguments
- double time_step - Enable flag. Use 1 to show the debug window, or 0 - to hide it.
double getLocalTime()
Returns the local time of the current federate.Return value
Local time of the current federate.void registerFederationSynchronizationPoint(const char * label, const char * tag)
Registers a new syncronization point for all federates.Arguments
- const char * label - String uniquely identifying the synchronization point.
- const char * tag - User-supplied tag.
void registerFederationSynchronizationPoint(const char * label, const char * tag, const Vector<unsigned long> & sync_set)
Registers a new syncronization point.Arguments
- const char * label - String uniquely identifying the synchronization point.
- const char * tag - User-supplied tag.
- const Vector<unsigned long> & sync_set - List containing handles of federates to synchronize.
void synchronizationPointAchieved(const char * label)
Sends a message that specified synchronization point was successfully achieved with all requirements fulfilled.Arguments
- const char * label - String uniquely identifying the synchronization point.
unsigned long getInteractionClassHandle(const char * name)
Returns interaction class handle.Arguments
- const char * name - Interaction class name.
Return value
Interaction class handle.unsigned long getParameterHandle(const char * name, unsigned long which_class)
Returns parameter handle.Arguments
- const char * name - Parameter name.
- unsigned long which_class - Class to which the parameter belongs.
Return value
Handle of the specified parameter.unsigned long getObjectClassHandle(const char * name)
Returns object class handle.Arguments
- const char * name - Object class name
Return value
Handle of the specified object class.unsigned long getAttributeHandle(const char * name, unsigned long which_class)
Returns attribute handle.Arguments
- const char * name - Attribute name.
- unsigned long which_class - Class to which the attribute belongs.
Return value
Handle of the specified attribute.void publishAndSubscribeObject(unsigned long handle_id, const Vector<unsigned long> & attributes)
Publish and subscribe for the specified Object Class.Arguments
- unsigned long handle_id - Handle ID.
- const Vector<unsigned long> & attributes - List of attributes.
void publishObject(unsigned long handle_id, const Vector<unsigned long> & attributes)
Publish the specified Object Class.Arguments
- unsigned long handle_id - Handle ID.
- const Vector<unsigned long> & attributes - List of attributes.
void subscribeObject(unsigned long handle_id, const Vector<unsigned long> & attributes)
Subscribe for the specified Object Class.Arguments
- unsigned long handle_id - Handle ID.
- const Vector<unsigned long> & attributes - List of attributes.
void publishAndSubscribeInteraction(unsigned long handle_id)
Publish and subscribe for the specified Interaction Class.Arguments
- unsigned long handle_id - Class handle ID.
void publishInteraction(unsigned long handle_id)
Publish the specified Interaction Class.Arguments
- unsigned long handle_id - Class handle ID.
void subscribeInteraction(unsigned long handle_id)
Subscribe to the specified Interaction Class.Arguments
- unsigned long handle_id - Class handle ID.
unsigned long registerObjectInstance(unsigned long class_handle_id, const char * name)
Registers a new object instance instance with the specified name.Arguments
- unsigned long class_handle_id - Class handle ID.
- const char * name - Object name.
Return value
Object handle.int updateAttributeValues(unsigned long object_id, const Map<unsigned long, String> & attributes, const char * tag)
Updates attribute values for the specified object instance.Arguments
- unsigned long object_id - Object ID.
- const Map<unsigned long, String> & attributes - List of attributes.
- const char * tag - User-supplied tag.
Return value
1 if the specified attribute values were updated successfully; otherwise, 0.int updateAttributeValues(unsigned long object_id, const Map<unsigned long, String> & attributes, double time, const char * tag)
Updates attribute values for the specified object instance.Arguments
- unsigned long object_id - Object ID.
- const Map<unsigned long, String> & attributes - List of attributes.
- double time - Federation time.
- const char * tag - User-supplied tag.
Return value
1 if the specified attribute values were updated successfully; otherwise, 0.int deleteObjectInstance(unsigned long object_id, const char * tag)
Deletes the specified object instance.Arguments
- unsigned long object_id - Object ID.
- const char * tag - User-supplied tag.
Return value
1 if the specified object instance was deleted successfully; otherwise, 0.int deleteObjectInstance(unsigned long object_id, double time, const char * tag)
Deletes the specified object instance.Arguments
- unsigned long object_id - Object ID.
- double time - Federation time.
- const char * tag - User-supplied tag.
Return value
1 if the specified object instance was deleted successfully; otherwise, 0.int sendInteraction(unsigned long handle_id, const Map<unsigned long, String> & parameters, const char * tag)
Sends an interaction with the specified parameters.Arguments
- unsigned long handle_id - Handle ID.
- const Map<unsigned long, String> & parameters - List of parameters.
- const char * tag - User-supplied tag.
Return value
1 if interaction was sent successfully; otherwise, 0.int sendInteraction(unsigned long handle_id, const Map<unsigned long, String> & parameters, double time, const char * tag)
Sends an interaction with the specified parameters.Arguments
- unsigned long handle_id - Handle ID.
- const Map<unsigned long, String> & parameters - List of parameters.
- double time - Federation time.
- const char * tag - User-supplied tag.
Return value
1 if interaction was sent successfully; otherwise, 0.void enableTimeRegulation(double federate_time, double lookahead)
Enables time regulation mode for the federate.Arguments
- double federate_time - Federate time.
- double lookahead - Lookahead value for a regulating federate, this value determines the frequency of calling the timeAdvanceRequest() method.
void disableTimeRegulation()
Disables time regulation mode for the federate.void enableTimeConstrained()
Enables time-constrained mode for the federate.void disableTimeConstrained()
Disables time-constrained mode for the federate.void timeAdvanceRequest(double time)
Issues a Time Advance Request for the federate.This method is used by time-stepped federates.
Arguments
- double time - Time value.
void timeAdvanceRequestAvailable(double time)
Enables time regulation mode for the federate.This method is used by time-stepped federates.
Arguments
- double time - Time value.
void nextEventRequest(double time)
Advances the federate’s logical time to the time-stamp of the next relevant TSO event in the federation.This method is used by event-based federates.
Arguments
- double time - Time stamp of the next local event the federate wishes to advance to.
void nextEventRequestAvailable(double time)
Advances the federate’s logical time to the time-stamp of the next relevant TSO event in the federation. The method is similar to nextEventRequest(), except that a time advance might be granted before all TSO events at the grant time have been delivered to the federate.This method is used by event-based federates.
Arguments
- double time - Time stamp of the next local event the federate wishes to advance to.
void flushQueueRequest(double time)
Process all federation events regardless of time.Arguments
- double time - Time value.
void enableAsynchronousDelivery()
Instructs the LRC to begin delivering receive-ordered events to the federate even while no time-advancement service is in progress.void disableAsynchronousDelivery()
Instructs the LRC not to deliver receive-ordered events in the absense of an in-progress time-advancement service. This has only a meaning for time-constrained federates, since non-constrained federates receive all events in receive order.void modifyLookahead(double lookahead)
Sets the new lookahead window for the federate.Arguments
- double lookahead - New size of the interval extending forward from the federate’s logical time at a given point in execution in which a federate will not generate any time stamp ordered events.
void queryLookahead(double lookahead)
Returns the current lookahead window being used for the federate.Arguments
- double lookahead - Time value.
CallbackBase * addCallback(int callback, CallbackBase * func)
Adds a callback function of the specified type.Arguments
- int callback - Callback type. One of the CALLBACK_* variables.
- CallbackBase * func - Callback pointer.
Return value
Pointer to the added callback.void removeCallback(int callback, CallbackBase * func)
Removes a callback function of the specified type.Arguments
- int callback - Callback type. One of the CALLBACK_* variables.
- CallbackBase * func - Callback pointer.
void clearCallbacks(int callback)
Clears all callback functions of the specified type.Arguments
- int callback - Callback type. One of the CALLBACK_* variables.
int shutdown()
Shuts down the HLA Client.Return value
1 if the HLA Client was shut down successfully; otherwise, 0.int CALLBACK_DISCOVER_OBJECT_INSTANCE
Description
Discover Object Instance event callback.int CALLBACK_REFLECT_ATTRIBUTE_VALUES
Description
Reflect Attribute Values event callback.int CALLBACK_RECEIVE_INTERACTION
Description
Receive Interaction event callback.int CALLBACK_REMOVE_OBJECT_INSTANCE
Description
Remove Object Instance event callback.int CALLBACK_SYNC_POINT_REG_SUCCEEDED
Description
Synchronization Point Registration Succeeded event callback.int CALLBACK_SYNC_POINT_REG_FAILED
Description
Synchronization Point Registration Failed event callback.int CALLBACK_SYNC_ANNOUNCE_SYNC_POINT
Description
Announce Synchronization Point event callback.int CALLBACK_FEDERATION_SYNCHRONIZED
Description
Federation Synchronized event callback.int CALLBACK_TIME_REGULATION_ENABLED
Description
Time Regulation Enabled event callback.int CALLBACK_TIME_CONSTRAINED_ENABLED
Description
Time Constrained Enadled event callback.int CALLBACK_TIME_ADVANCE_GRANT
Description
Time Advance event callback.int CALLBACK_REQUEST_RETRACTION
Description
Request Retraction event callback.int RTI13
Description
HLA version 1.3.int RTI1516
Description
HLA version IEEE 1516.int RTI1516E
Description
HLA version IEEE 1516e.Last update: 2018-08-10
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)