C API Reference

HELICS_EXPORT void helicsBrokerAddDestinationFilterToEndpoint(helics_broker broker, const char * filter, const char * endpoint, helics_error * err)

Link a named filter to a destination endpoint.

Parameters
  • broker: The broker to generate the connection from.
  • filter: The name of the filter (cannot be NULL).
  • endpoint: The name of the endpoint to filter the data going to (cannot be NULL).
  • err: A helics_error object, can be NULL if the errors are to be ignored.

HELICS_EXPORT void helicsBrokerAddSourceFilterToEndpoint(helics_broker broker, const char * filter, const char * endpoint, helics_error * err)

Link a named filter to a source endpoint.

Parameters
  • broker: The broker to generate the connection from.
  • filter: The name of the filter (cannot be NULL).
  • endpoint: The name of the endpoint to filter the data from (cannot be NULL).
  • err: A helics_error object, can be NULL if the errors are to be ignored.

HELICS_EXPORT helics_broker helicsBrokerClone(helics_broker broker, helics_error * err)

Create a new reference to an existing broker.

This will create a new broker object that references the existing broker it must be freed as well.

Return
A new reference to the same broker.
Parameters
  • broker: An existing helics_broker.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsBrokerDataLink(helics_broker broker, const char * source, const char * target, helics_error * err)

Link a named publication and named input using a broker.

Parameters
  • broker: The broker to generate the connection from.
  • source: The name of the publication (cannot be NULL).
  • target: The name of the target to send the publication data (cannot be NULL).
  • err: A helics_error object, can be NULL if the errors are to be ignored.

HELICS_EXPORT void helicsBrokerDestroy(helics_broker broker)

Disconnect and free a broker.

HELICS_EXPORT void helicsBrokerDisconnect(helics_broker broker, helics_error * err)

Disconnect a broker.

Parameters
  • broker: The broker to disconnect.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsBrokerFree(helics_broker broker)

Release the memory associated with a broker.

HELICS_EXPORT const char* helicsBrokerGetAddress(helics_broker broker)

Get the network address associated with a broker.

Return
A string with the network address of the broker.
Parameters
  • broker: The broker to query.

HELICS_EXPORT const char* helicsBrokerGetIdentifier(helics_broker broker)

Get an identifier for the broker.

Return
A string containing the identifier for the broker.
Parameters
  • broker: The broker to query.

HELICS_EXPORT helics_bool helicsBrokerIsConnected(helics_broker broker)

Check if a broker is connected.

A connected broker implies it is attached to cores or cores could reach out to communicate.

Return
helics_false if not connected.

HELICS_EXPORT helics_bool helicsBrokerIsValid(helics_broker broker)

Check if a broker object is a valid object.

Parameters
  • broker: The helics_broker object to test.

HELICS_EXPORT void helicsBrokerSetGlobal(helics_broker broker, const char * valueName, const char * value, helics_error * err)

Set a federation global value.

This overwrites any previous value for this name.

Parameters
  • broker: The broker to set the global through.
  • valueName: The name of the global to set.
  • value: The value of the global.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_bool helicsBrokerWaitForDisconnect(helics_broker broker, int msToWait, helics_error * err)

Wait for the broker to disconnect.

Return
helics_true if the disconnect was successful, helics_false if there was a timeout.
Parameters
  • broker: The broker to wait for.
  • msToWait: The time out in millisecond (<0 for infinite timeout).
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsCleanupLibrary(void)

Function to do some housekeeping work.

This runs some cleanup routines and tries to close out any residual thread that haven’t been shutdown yet.

HELICS_EXPORT void helicsCloseLibrary(void)

Call when done using the helics library. This function will ensure the threads are closed properly. If possible this should be the last call before exiting.

HELICS_EXPORT void helicsCoreAddDestinationFilterToEndpoint(helics_core core, const char * filter, const char * endpoint, helics_error * err)

Link a named filter to a destination endpoint.

Parameters
  • core: The core to generate the connection from.
  • filter: The name of the filter (cannot be NULL).
  • endpoint: The name of the endpoint to filter the data going to (cannot be NULL).
  • err: A helics_error object, can be NULL if the errors are to be ignored.

HELICS_EXPORT void helicsCoreAddSourceFilterToEndpoint(helics_core core, const char * filter, const char * endpoint, helics_error * err)

Link a named filter to a source endpoint.

Parameters
  • core: The core to generate the connection from.
  • filter: The name of the filter (cannot be NULL).
  • endpoint: The name of the endpoint to filter the data from (cannot be NULL).
  • err: A helics_error object, can be NULL if the errors are to be ignored.

HELICS_EXPORT helics_core helicsCoreClone(helics_core core, helics_error * err)

Create a new reference to an existing core.

This will create a new broker object that references the existing broker. The new broker object must be freed as well.

Return
A new reference to the same broker.
Parameters
  • core: An existing helics_core.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsCoreDataLink(helics_core core, const char * source, const char * target, helics_error * err)

Link a named publication and named input using a core.

Parameters
  • core: The core to generate the connection from.
  • source: The name of the publication (cannot be NULL).
  • target: The name of the target to send the publication data (cannot be NULL).
  • err: A helics_error object, can be NULL if the errors are to be ignored.

HELICS_EXPORT void helicsCoreDestroy(helics_core core)

Disconnect and free a core.

HELICS_EXPORT void helicsCoreDisconnect(helics_core core, helics_error * err)

Disconnect a core from the federation.

Parameters
  • core: The core to query.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsCoreFree(helics_core core)

Release the memory associated with a core.

HELICS_EXPORT const char* helicsCoreGetIdentifier(helics_core core)

Get an identifier for the core.

Return
A string with the identifier of the core.
Parameters
  • core: The core to query.

HELICS_EXPORT helics_bool helicsCoreIsConnected(helics_core core)

Check if a core is connected.

A connected core implies it is attached to federates or federates could be attached to it

Return
helics_false if not connected, helics_true if it is connected.

HELICS_EXPORT helics_bool helicsCoreIsValid(helics_core core)

Check if a core object is a valid object.

Parameters
  • core: The helics_core object to test.

HELICS_EXPORT helics_filter helicsCoreRegisterCloningFilter(helics_core core, const char * name, helics_error * err)

Create a cloning Filter on the specified core.

Cloning filters copy a message and send it to multiple locations, source and destination can be added through other functions.

Return
A helics_filter object.
Parameters
  • core: The core to register through.
  • name: The name of the filter (can be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_filter helicsCoreRegisterFilter(helics_core core, helics_filter_type type, const char * name, helics_error * err)

Create a source Filter on the specified core.

Filters can be created through a federate or a core, linking through a federate allows a few extra features of name matching to function on the federate interface but otherwise equivalent behavior.

Return
A helics_filter object.
Parameters
  • core: The core to register through.
  • type: The type of filter to create /ref helics_filter_type.
  • name: The name of the filter (can be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsCoreSetGlobal(helics_core core, const char * valueName, const char * value, helics_error * err)

Set a global value in a core.

This overwrites any previous value for this name.

Parameters
  • core: The core to set the global through.
  • valueName: The name of the global to set.
  • value: The value of the global.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsCoreSetReadyToInit(helics_core core, helics_error * err)

Set the core to ready for init.

This function is used for cores that have filters but no federates so there needs to be a direct signal to the core to trigger the federation initialization.

Parameters
  • core: The core object to enable init values for.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_broker helicsCreateBroker(const char * type, const char * name, const char * initString, helics_error * err)

Create a broker object.

Return
A helics_broker object. It will be NULL if there was an error indicated in the err object.
Parameters
  • type: The type of the broker to create.
  • name: The name of the broker. It can be a nullptr or empty string to have a name automatically assigned.
  • initString: An initialization string to send to the core-the format is similar to command line arguments. Typical options include a broker address such as broker=”XSSAF” if this is a subbroker, or the number of federates, or the address.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_broker helicsCreateBrokerFromArgs(const char * type, const char * name, int argc, const char *const * argv, helics_error * err)

Create a core object by passing command line arguments.

Return
A helics_core object.
Parameters
  • type: The type of the core to create.
  • name: The name of the core. It can be a nullptr or empty string to have a name automatically assigned.
  • argc: The number of arguments.
  • argv: The list of string values from a command line.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_federate helicsCreateCombinationFederate(const char * fedName, helics_federate_info fi, helics_error * err)

Create a combination federate from a federate info object.

Combination federates are both value federates and message federates, objects can be used in all functions that take a helics_federate, helics_message_federate or helics_federate object as an argument

Return
An opaque value federate object nullptr if the object creation failed.
Parameters
  • fedName: A string with the name of the federate, can be NULL or an empty string to pull the default name from fi.
  • fi: The federate info object that contains details on the federate.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_federate helicsCreateCombinationFederateFromConfig(const char * configFile, helics_error * err)

Create a combination federate from a JSON file or JSON string or TOML file.

Combination federates are both value federates and message federates, objects can be used in all functions that take a helics_federate, helics_message_federate or helics_federate object as an argument

Return
An opaque combination federate object.
Parameters
  • configFile: A JSON file or a JSON string or TOML file that contains setup and configuration information.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_core helicsCreateCore(const char * type, const char * name, const char * initString, helics_error * err)

Create a core object.

Return
A helics_core object. If the core is invalid, err will contain the corresponding error message and the returned object will be NULL.
Parameters
  • type: The type of the core to create.
  • name: The name of the core. It can be a nullptr or empty string to have a name automatically assigned.
  • initString: An initialization string to send to the core. The format is similar to command line arguments. Typical options include a broker name, the broker address, the number of federates, etc.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_core helicsCreateCoreFromArgs(const char * type, const char * name, int argc, const char *const * argv, helics_error * err)

Create a core object by passing command line arguments.

Return
A helics_core object.
Parameters
  • type: The type of the core to create.
  • name: The name of the core. It can be a nullptr or empty string to have a name automatically assigned.
  • argc: The number of arguments.
  • argv: The list of string values from a command line.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_federate_info helicsCreateFederateInfo(void)

Create a federate info object for specifying federate information when constructing a federate.

Return
A helics_federate_info object which is a reference to the created object.

HELICS_EXPORT helics_federate helicsCreateMessageFederate(const char * fedName, helics_federate_info fi, helics_error * err)

Create a message federate from a federate info object.

helics_message_federate objects can be used in all functions that take a helics_message_federate or helics_federate object as an argument.

Return
An opaque message federate object.
Parameters
  • fedName: The name of the federate to create.
  • fi: The federate info object that contains details on the federate.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_federate helicsCreateMessageFederateFromConfig(const char * configFile, helics_error * err)

Create a message federate from a JSON file or JSON string or TOML file.

helics_message_federate objects can be used in all functions that take a helics_message_federate or helics_federate object as an argument.

Return
An opaque message federate object.
Parameters
  • configFile: A Config(JSON,TOML) file or a JSON string that contains setup and configuration information.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_query helicsCreateQuery(const char * target, const char * query)

Create a query object.

A query object consists of a target and query string.

Parameters
  • target: The name of the target to query.
  • query: The query to make of the target.

HELICS_EXPORT helics_federate helicsCreateValueFederate(const char * fedName, helics_federate_info fi, helics_error * err)

Create a value federate from a federate info object.

helics_federate objects can be used in all functions that take a helics_federate or helics_federate object as an argument.

Return
An opaque value federate object.
Parameters
  • fedName: The name of the federate to create, can NULL or an empty string to use the default name from fi or an assigned name.
  • fi: The federate info object that contains details on the federate.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_federate helicsCreateValueFederateFromConfig(const char * configFile, helics_error * err)

Create a value federate from a JSON file, JSON string, or TOML file.

helics_federate objects can be used in all functions that take a helics_federate or helics_federate object as an argument.

Return
An opaque value federate object.
Parameters
  • configFile: A JSON file or a JSON string or TOML file that contains setup and configuration information.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT const char* helicsEndpointGetDefaultDestination(helics_endpoint endpoint)

Get the default destination for an endpoint.

Return
A string with the default destination.
Parameters
  • endpoint: The endpoint to set the destination for.

HELICS_EXPORT const char* helicsEndpointGetInfo(helics_endpoint end)

Get the data in the info field of a filter.

Return
A string with the info field string.
Parameters
  • end: The filter to query.

HELICS_DEPRECATED_EXPORT helics_message helicsEndpointGetMessage(helics_endpoint endpoint)

Receive a packet from a particular endpoint.

Return
A message object.
Parameters
  • endpoint: The identifier for the endpoint.

HELICS_EXPORT const char* helicsEndpointGetName(helics_endpoint endpoint)

Get the name of an endpoint.

Return
The name of the endpoint.
Parameters
  • endpoint: The endpoint object in question.

HELICS_EXPORT helics_bool helicsEndpointGetOption(helics_endpoint end, int option)

Set a handle option on an endpoint.

Parameters
  • end: The endpoint to modify.
  • option: Integer code for the option to set /ref helics_handle_options.

HELICS_EXPORT const char* helicsEndpointGetType(helics_endpoint endpoint)

Get the type specified for an endpoint.

Return
The defined type of the endpoint.
Parameters
  • endpoint: The endpoint object in question.

HELICS_EXPORT helics_bool helicsEndpointHasMessage(helics_endpoint endpoint)

Check if a given endpoint has any unread messages.

Return
helics_true if the endpoint has a message, helics_false otherwise.
Parameters
  • endpoint: The endpoint to check.

HELICS_EXPORT int helicsEndpointPendingMessages(helics_endpoint endpoint)

Returns the number of pending receives for all endpoints of a particular federate.

Parameters
  • endpoint: The endpoint to query.

HELICS_EXPORT void helicsEndpointSendEventRaw(helics_endpoint endpoint, const char * dest, const void * data, int inputDataLength, helics_time time, helics_error * err)

Send a message at a specific time to the specified destination.

Parameters
  • endpoint: The endpoint to send the data from.
  • dest: The target destination. nullptr to use the default destination. “” to use the default destination.
  • data: The data to send.
  • inputDataLength: The length of the data to send.
  • time: The time the message should be sent.
  • err: A pointer to an error object for catching errors.

HELICS_DEPRECATED_EXPORT void helicsEndpointSendMessage(helics_endpoint endpoint, helics_message * message, helics_error * err)

Send a message object from a specific endpoint.

Parameters
  • endpoint: The endpoint to send the data from.
  • message: The actual message to send.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsEndpointSendMessageRaw(helics_endpoint endpoint, const char * dest, const void * data, int inputDataLength, helics_error * err)

Send a message to the specified destination.

Parameters
  • endpoint: The endpoint to send the data from.
  • dest: The target destination. nullptr to use the default destination. “” to use the default destination.
  • data: The data to send.
  • inputDataLength: The length of the data to send.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsEndpointSetDefaultDestination(helics_endpoint endpoint, const char * dest, helics_error * err)

Set the default destination for an endpoint if no other endpoint is given.

Parameters
  • endpoint: The endpoint to set the destination for.
  • dest: A string naming the desired default endpoint.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsEndpointSetInfo(helics_endpoint end, const char * info, helics_error * err)

Set the data in the info field for a filter.

Parameters
  • end: The endpoint to query.
  • info: The string to set.
  • err: An error object to fill out in case of an error.

HELICS_EXPORT void helicsEndpointSetOption(helics_endpoint end, int option, helics_bool value, helics_error * err)

Set a handle option on an endpoint.

Parameters
  • end: The endpoint to modify.
  • option: Integer code for the option to set /ref helics_handle_options.
  • value: The value to set the option to.
  • err: An error object to fill out in case of an error.

HELICS_EXPORT void helicsEndpointSubscribe(helics_endpoint endpoint, const char * key, helics_error * err)

Subscribe an endpoint to a publication.

Parameters
  • endpoint: The endpoint to use.
  • key: The name of the publication.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_federate helicsFederateClone(helics_federate fed, helics_error * err)

Create a new reference to an existing federate.

This will create a new helics_federate object that references the existing federate. The new object must be freed as well.

Return
A new reference to the same federate.
Parameters
  • fed: An existing helics_federate.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateDestroy(helics_federate fed)

Disconnect and free a federate.

HELICS_EXPORT void helicsFederateEnterExecutingMode(helics_federate fed, helics_error * err)

Request that the federate enter the Execution mode.

This call is blocking until granted entry by the core object. On return from this call the federate will be at time 0. For an asynchronous alternative call see /ref helicsFederateEnterExecutingModeAsync.

Parameters
  • fed: A federate to change modes.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateEnterExecutingModeAsync(helics_federate fed, helics_error * err)

Request that the federate enter the Execution mode.

This call is non-blocking and will return immediately. Call /ref helicsFederateEnterExecutingModeComplete to finish the call sequence.

Parameters
  • fed: The federate object to complete the call.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateEnterExecutingModeComplete(helics_federate fed, helics_error * err)

Complete the call to /ref helicsFederateEnterExecutingModeAsync.

Parameters
  • fed: The federate object to complete the call.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_iteration_result helicsFederateEnterExecutingModeIterative(helics_federate fed, helics_iteration_request iterate, helics_error * err)

Request an iterative time.

This call allows for finer grain control of the iterative process than /ref helicsFederateRequestTime. It takes a time and iteration request, and returns a time and iteration status.

Return
An iteration structure with field containing the time and iteration status.
Parameters
  • fed: The federate to make the request of.
  • iterate: The requested iteration mode.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateEnterExecutingModeIterativeAsync(helics_federate fed, helics_iteration_request iterate, helics_error * err)

Request an iterative entry to the execution mode.

This call allows for finer grain control of the iterative process than /ref helicsFederateRequestTime. It takes a time and iteration request, and returns a time and iteration status

Parameters
  • fed: The federate to make the request of.
  • iterate: The requested iteration mode.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_iteration_result helicsFederateEnterExecutingModeIterativeComplete(helics_federate fed, helics_error * err)

Complete the asynchronous iterative call into ExecutionMode.

Return
An iteration object containing the iteration time and iteration_status.
Parameters
  • fed: The federate to make the request of.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateEnterInitializingMode(helics_federate fed, helics_error * err)

Enter the initialization state of a federate.

The initialization state allows initial values to be set and received if the iteration is requested on entry to the execution state. This is a blocking call and will block until the core allows it to proceed.

Parameters
  • fed: The federate to operate on.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateEnterInitializingModeAsync(helics_federate fed, helics_error * err)

Non blocking alternative to helicsFederateEnterInitializingMode.

The function helicsFederateEnterInitializationModeFinalize must be called to finish the operation.

Parameters
  • fed: The federate to operate on.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateEnterInitializingModeComplete(helics_federate fed, helics_error * err)

Finalize the entry to initialize mode that was initiated with /ref heliceEnterInitializingModeAsync.

Parameters
  • fed: The federate desiring to complete the initialization step.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateFinalize(helics_federate fed, helics_error * err)

Finalize the federate. This function halts all communication in the federate and disconnects it from the core.

HELICS_EXPORT void helicsFederateFinalizeAsync(helics_federate fed, helics_error * err)

Finalize the federate in an async call.

HELICS_EXPORT void helicsFederateFinalizeComplete(helics_federate fed, helics_error * err)

Complete the asynchronous finalize call.

HELICS_EXPORT void helicsFederateFree(helics_federate fed)

Release the memory associated withe a federate.

HELICS_EXPORT helics_core helicsFederateGetCoreObject(helics_federate fed, helics_error * err)

Get the core object associated with a federate.

Return
A core object, nullptr if invalid.
Parameters
  • fed: A federate object.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_time helicsFederateGetCurrentTime(helics_federate fed, helics_error * err)

Get the current time of the federate.

Return
The current time of the federate.
Parameters
  • fed: The federate object to query.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_endpoint helicsFederateGetEndpoint(helics_federate fed, const char * name, helics_error * err)

Get an endpoint object from a name.

Return
A helics_endpoint object. The object will not be valid and err will contain an error code if no endpoint with the specified name exists.
Parameters
  • fed: The message federate object to use to get the endpoint.
  • name: The name of the endpoint.
  • err: The error object to complete if there is an error.

HELICS_EXPORT helics_endpoint helicsFederateGetEndpointByIndex(helics_federate fed, int index, helics_error * err)

Get an endpoint by its index, typically already created via registerInterfaces file or something of that nature.

Return
A helics_endpoint. It will be NULL if given an invalid index.
Parameters
  • fed: The federate object in which to create a publication.
  • index: The index of the publication to get.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT int helicsFederateGetEndpointCount(helics_federate fed)

Get the number of endpoints in a federate.

Return
(-1) if fed was not a valid federate, otherwise returns the number of endpoints.
Parameters
  • fed: The message federate to query.

HELICS_EXPORT helics_filter helicsFederateGetFilter(helics_federate fed, const char * name, helics_error * err)

Get a filter by its name, typically already created via registerInterfaces file or something of that nature.

Return
A helics_filter object, the object will not be valid and err will contain an error code if no filter with the specified name exists.
Parameters
  • fed: The federate object to use to get the filter.
  • name: The name of the filter.
  • err: The error object to complete if there is an error.

HELICS_EXPORT helics_filter helicsFederateGetFilterByIndex(helics_federate fed, int index, helics_error * err)

Get a filter by its index, typically already created via registerInterfaces file or something of that nature.

Return
A helics_filter, which will be NULL if an invalid index is given.
Parameters
  • fed: The federate object in which to create a publication.
  • index: The index of the publication to get.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT int helicsFederateGetFilterCount(helics_federate fed)

Get the number of filters registered through a federate.

Return
A count of the number of filters registered through a federate.
Parameters
  • fed: The federate object to use to get the filter.

HELICS_EXPORT helics_bool helicsFederateGetFlagOption(helics_federate fed, int flag, helics_error * err)

Get a flag value for a federate.

Return
The value of the flag.
Parameters
  • fed: The federate to get the flag for.
  • flag: The flag to query.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_input helicsFederateGetInput(helics_federate fed, const char * key, helics_error * err)

Get an input object from a key.

Return
A helics_input object, the object will not be valid and err will contain an error code if no input with the specified key exists.
Parameters
  • fed: The value federate object to use to get the publication.
  • key: The name of the input.
  • err: The error object to complete if there is an error.

HELICS_EXPORT helics_input helicsFederateGetInputByIndex(helics_federate fed, int index, helics_error * err)

Get an input by its index, typically already created via registerInterfaces file or something of that nature.

Return
A helics_input, which will be NULL if an invalid index.
Parameters
  • fed: The federate object in which to create a publication.
  • index: The index of the publication to get.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT int helicsFederateGetInputCount(helics_federate fed)

Get the number of subscriptions in a federate.

Return
(-1) if fed was not a valid federate otherwise returns the number of subscriptions.

HELICS_EXPORT int helicsFederateGetIntegerProperty(helics_federate fed, int intProperty, helics_error * err)

Get the current value of an integer property (such as a logging level).

Return
The value of the property.
Parameters
  • fed: The federate to get the flag for.
  • intProperty: A code for the property to set /ref helics_handle_options.
  • err: A pointer to an error object for catching errors.

HELICS_DEPRECATED_EXPORT helics_message helicsFederateGetMessage(helics_federate fed)

Receive a communication message for any endpoint in the federate.

The return order will be in order of endpoint creation. So all messages that are available for the first endpoint, then all for the second, and so on. Within a single endpoint, the messages are ordered by time, then source_id, then order of arrival.

Return
A unique_ptr to a Message object containing the message data.

HELICS_EXPORT const char* helicsFederateGetName(helics_federate fed)

Get the name of the federate.

Return
A pointer to a string with the name.
Parameters
  • fed: The federate object to query.

HELICS_EXPORT helics_publication helicsFederateGetPublication(helics_federate fed, const char * key, helics_error * err)

Get a publication object from a key.

Return
A helics_publication object, the object will not be valid and err will contain an error code if no publication with the specified key exists.
Parameters
  • fed: The value federate object to use to get the publication.
  • key: The name of the publication.
  • err: The error object to complete if there is an error.

HELICS_EXPORT helics_publication helicsFederateGetPublicationByIndex(helics_federate fed, int index, helics_error * err)

Get a publication by its index, typically already created via registerInterfaces file or something of that nature.

Return
A helics_publication.
Parameters
  • fed: The federate object in which to create a publication.
  • index: The index of the publication to get.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT int helicsFederateGetPublicationCount(helics_federate fed)

Get the number of publications in a federate.

Return
(-1) if fed was not a valid federate otherwise returns the number of publications.

HELICS_EXPORT helics_federate_state helicsFederateGetState(helics_federate fed, helics_error * err)

Get the current state of a federate.

Return
State the resulting state if void return helics_ok.
Parameters
  • fed: The federate to query.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_input helicsFederateGetSubscription(helics_federate fed, const char * key, helics_error * err)

Get an input object from a subscription target.

Return
A helics_input object, the object will not be valid and err will contain an error code if no input with the specified key exists.
Parameters
  • fed: The value federate object to use to get the publication.
  • key: The name of the publication that a subscription is targeting.
  • err: The error object to complete if there is an error.

HELICS_EXPORT helics_time helicsFederateGetTimeProperty(helics_federate fed, int timeProperty, helics_error * err)

Get the current value of a time based property in a federate.

Parameters
  • fed: The federate query.
  • timeProperty: The property to query.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_bool helicsFederateHasMessage(helics_federate fed)

Check if the federate has any outstanding messages.

Return
helics_true if the federate has a message waiting, helics_false otherwise.
Parameters
  • fed: The federate to check.

HELICS_EXPORT helics_federate_info helicsFederateInfoClone(helics_federate_info fi, helics_error * err)

Create a federate info object from an existing one and clone the information.

Return
A helics_federate_info object which is a reference to the created object.
Parameters
  • fi: A federateInfo object to duplicate.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoFree(helics_federate_info fi)

Delete the memory associated with a federate info object.

HELICS_EXPORT void helicsFederateInfoLoadFromArgs(helics_federate_info fi, int argc, const char *const * argv, helics_error * err)

Load federate info from command line arguments.

Parameters
  • fi: A federateInfo object.
  • argc: The number of command line arguments.
  • argv: An array of strings from the command line.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetBroker(helics_federate_info fi, const char * broker, helics_error * err)

Set the name or connection information for a broker.

This is only used if the core is automatically created, the broker information will be transferred to the core for connection.

Parameters
  • fi: The federate info object to alter.
  • broker: A string which defines the connection information for a broker either a name or an address.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetBrokerPort(helics_federate_info fi, int brokerPort, helics_error * err)

Set the port to use for the broker.

This is only used if the core is automatically created, the broker information will be transferred to the core for connection. This will only be useful for network broker connections.

Parameters
  • fi: The federate info object to alter.
  • brokerPort: The integer port number to use for connection with a broker.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetCoreInitString(helics_federate_info fi, const char * coreInit, helics_error * err)

Set the initialization string for the core usually in the form of command line arguments.

Parameters
  • fi: The federate info object to alter.
  • coreInit: A string containing command line arguments to be passed to the core.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetCoreName(helics_federate_info fi, const char * corename, helics_error * err)

Set the name of the core to link to for a federate.

Parameters
  • fi: The federate info object to alter.
  • corename: The identifier for a core to link to.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetCoreType(helics_federate_info fi, int coretype, helics_error * err)

Set the core type by integer code.

Valid values available by definitions in api-data.h.

Parameters
  • fi: The federate info object to alter.
  • coretype: An numerical code for a core type see /ref helics_core_type.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetCoreTypeFromString(helics_federate_info fi, const char * coretype, helics_error * err)

Set the core type from a string.

Parameters
  • fi: The federate info object to alter.
  • coretype: A string naming a core type.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetFlagOption(helics_federate_info fi, int flag, helics_bool value, helics_error * err)

Set a flag in the info structure.

Valid flags are available /ref helics_federate_flags.

Parameters
  • fi: The federate info object to alter.
  • flag: A numerical index for a flag.
  • value: The desired value of the flag helics_true or helics_false.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetIntegerProperty(helics_federate_info fi, int intProperty, int propertyValue, helics_error * err)

Set an integer property for a federate.

Set known properties.

Parameters
  • fi: The federateInfo object to alter.
  • intProperty: An int identifying the property.
  • propertyValue: The value to set the property to.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetLocalPort(helics_federate_info fi, const char * localPort, helics_error * err)

Set the local port to use.

This is only used if the core is automatically created, the port information will be transferred to the core for connection.

Parameters
  • fi: The federate info object to alter.
  • localPort: A string with the port information to use as the local server port can be a number or “auto” or “os_local”.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetSeparator(helics_federate_info fi, char separator, helics_error * err)

Set the separator character in the info structure.

The separator character is the separation character for local publications/endpoints in creating their global name. For example if the separator character is ‘/’ then a local endpoint would have a globally reachable name of fedName/localName.

Parameters
  • fi: The federate info object to alter.
  • separator: The character to use as a separator.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateInfoSetTimeProperty(helics_federate_info fi, int timeProperty, helics_time propertyValue, helics_error * err)

Set the output delay for a federate.

Parameters
  • fi: The federate info object to alter.
  • timeProperty: An integer representation of the time based property to set see /ref helics_properties.
  • propertyValue: The value of the property to set the timeProperty to.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_bool helicsFederateIsAsyncOperationCompleted(helics_federate fed, helics_error * err)

Check if the current Asynchronous operation has completed.

Return
helics_false if not completed, helics_true if completed.
Parameters
  • fed: The federate to operate on.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_bool helicsFederateIsValid(helics_federate fed)

Check if a federate_object is valid.

Return
helics_true if the federate is a valid active federate, helics_false otherwise

HELICS_EXPORT int helicsFederatePendingMessages(helics_federate fed)

Returns the number of pending receives for the specified destination endpoint.

Parameters
  • fed: The federate to get the number of waiting messages from.

HELICS_EXPORT helics_filter helicsFederateRegisterCloningFilter(helics_federate fed, const char * name, helics_error * err)

Create a cloning Filter on the specified federate.

Cloning filters copy a message and send it to multiple locations, source and destination can be added through other functions.

Return
A helics_filter object.
Parameters
  • fed: The federate to register through.
  • name: The name of the filter (can be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_endpoint helicsFederateRegisterEndpoint(helics_federate fed, const char * name, const char * type, helics_error * err)

Create an endpoint.

The endpoint becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for endpoints.

Return
An object containing the endpoint. nullptr on failure.
Parameters
  • fed: The federate object in which to create an endpoint must have been created with helicsCreateMessageFederate or helicsCreateCombinationFederate.
  • name: The identifier for the endpoint. This will be prepended with the federate name for the global identifier.
  • type: A string describing the expected type of the publication (may be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_filter helicsFederateRegisterFilter(helics_federate fed, helics_filter_type type, const char * name, helics_error * err)

Create a source Filter on the specified federate.

Filters can be created through a federate or a core, linking through a federate allows a few extra features of name matching to function on the federate interface but otherwise equivalent behavior

Return
A helics_filter object.
Parameters
  • fed: The federate to register through.
  • type: The type of filter to create /ref helics_filter_type.
  • name: The name of the filter (can be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_filter helicsFederateRegisterGlobalCloningFilter(helics_federate fed, const char * name, helics_error * err)

Create a global cloning Filter on the specified federate.

Cloning filters copy a message and send it to multiple locations, source and destination can be added through other functions.

Return
A helics_filter object.
Parameters
  • fed: The federate to register through.
  • name: The name of the filter (can be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_endpoint helicsFederateRegisterGlobalEndpoint(helics_federate fed, const char * name, const char * type, helics_error * err)

Create an endpoint.

The endpoint becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for endpoints.

Return
An object containing the endpoint. nullptr on failure.
Parameters
  • fed: The federate object in which to create an endpoint must have been created with helicsCreateMessageFederate or helicsCreateCombinationFederate.
  • name: The identifier for the endpoint, the given name is the global identifier.
  • type: A string describing the expected type of the publication (may be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_filter helicsFederateRegisterGlobalFilter(helics_federate fed, helics_filter_type type, const char * name, helics_error * err)

Create a global source filter through a federate.

Filters can be created through a federate or a core, linking through a federate allows a few extra features of name matching to function on the federate interface but otherwise equivalent behavior.

Return
A helics_filter object.
Parameters
  • fed: The federate to register through.
  • type: The type of filter to create /ref helics_filter_type.
  • name: The name of the filter (can be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_publication helicsFederateRegisterGlobalInput(helics_federate fed, const char * key, helics_data_type type, const char * units, helics_error * err)

Register a global named input.

The publication becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions and publications.

Return
An object containing the publication.
Parameters
  • fed: The federate object in which to create a publication.
  • key: The identifier for the publication.
  • type: A code identifying the type of the input see /ref helics_data_type for available options.
  • units: A string listing the units of the subscription maybe NULL.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_publication helicsFederateRegisterGlobalPublication(helics_federate fed, const char * key, helics_data_type type, const char * units, helics_error * err)

Register a global named publication with an arbitrary type.

The publication becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions and publications.

Return
An object containing the publication.
Parameters
  • fed: The federate object in which to create a publication.
  • key: The identifier for the publication.
  • type: A code identifying the type of the input see /ref helics_data_type for available options.
  • units: A string listing the units of the subscription (may be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_publication helicsFederateRegisterGlobalTypeInput(helics_federate fed, const char * key, const char * type, const char * units, helics_error * err)

Register a global publication with an arbitrary type.

The publication becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions and publications.

Return
An object containing the publication.
Parameters
  • fed: The federate object in which to create a publication.
  • key: The identifier for the publication.
  • type: A string defining the type of the input.
  • units: A string listing the units of the subscription maybe NULL.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_publication helicsFederateRegisterGlobalTypePublication(helics_federate fed, const char * key, const char * type, const char * units, helics_error * err)

Register a global publication with a defined type.

The publication becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions and publications.

Return
An object containing the publication.
Parameters
  • fed: The federate object in which to create a publication.
  • key: The identifier for the publication.
  • type: A string describing the expected type of the publication.
  • units: A string listing the units of the subscription (may be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_input helicsFederateRegisterInput(helics_federate fed, const char * key, helics_data_type type, const char * units, helics_error * err)

Register a named input.

The input becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions, inputs, and publications.

Return
An object containing the input.
Parameters
  • fed: The federate object in which to create an input.
  • key: The identifier for the publication the global input key will be prepended with the federate name.
  • type: A code identifying the type of the input see /ref helics_data_type for available options.
  • units: A string listing the units of the input (may be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsFederateRegisterInterfaces(helics_federate fed, const char * file, helics_error * err)

Load interfaces from a file.

Parameters
  • fed: The federate to which to load interfaces.
  • file: The name of a file to load the interfaces from either JSON, or TOML.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_publication helicsFederateRegisterPublication(helics_federate fed, const char * key, helics_data_type type, const char * units, helics_error * err)

Register a publication with a known type.

The publication becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions and publications.

Return
An object containing the publication.
Parameters
  • fed: The federate object in which to create a publication.
  • key: The identifier for the publication the global publication key will be prepended with the federate name.
  • type: A code identifying the type of the input see /ref helics_data_type for available options.
  • units: A string listing the units of the subscription (may be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_input helicsFederateRegisterSubscription(helics_federate fed, const char * key, const char * units, helics_error * err)

sub/pub registration Create a subscription.

The subscription becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions and publications.

Return
An object containing the subscription.
Parameters
  • fed: The federate object in which to create a subscription, must have been created with /ref helicsCreateValueFederate or /ref helicsCreateCombinationFederate.
  • key: The identifier matching a publication to get a subscription for.
  • units: A string listing the units of the subscription (may be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_input helicsFederateRegisterTypeInput(helics_federate fed, const char * key, const char * type, const char * units, helics_error * err)

Register an input with a defined type.

The input becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions, inputs, and publications.

Return
An object containing the publication.
Parameters
  • fed: The federate object in which to create an input.
  • key: The identifier for the input.
  • type: A string describing the expected type of the input.
  • units: A string listing the units of the input maybe NULL.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_publication helicsFederateRegisterTypePublication(helics_federate fed, const char * key, const char * type, const char * units, helics_error * err)

Register a publication with a defined type.

The publication becomes part of the federate and is destroyed when the federate is freed so there are no separate free functions for subscriptions and publications.

Return
An object containing the publication.
Parameters
  • fed: The federate object in which to create a publication.
  • key: The identifier for the publication.
  • type: A string labeling the type of the publication.
  • units: A string listing the units of the subscription (may be NULL).
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_time helicsFederateRequestNextStep(helics_federate fed, helics_error * err)

Request the next time step for federate execution.

Feds should have setup the period or minDelta for this to work well but it will request the next time step which is the current time plus the minimum time step.

Return
The time granted to the federate, will return helics_time_maxtime if the simulation has terminated or is invalid
Parameters
  • fed: The federate to make the request of.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_time helicsFederateRequestTime(helics_federate fed, helics_time requestTime, helics_error * err)

Request the next time for federate execution.

Return
The time granted to the federate, will return helics_time_maxtime if the simulation has terminated or is invalid.
Parameters
  • fed: The federate to make the request of.
  • requestTime: The next requested time.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateRequestTimeAsync(helics_federate fed, helics_time requestTime, helics_error * err)

Request the next time for federate execution in an asynchronous call.

Call /ref helicsFederateRequestTimeComplete to finish the call.

Parameters
  • fed: The federate to make the request of.
  • requestTime: The next requested time.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_time helicsFederateRequestTimeComplete(helics_federate fed, helics_error * err)

Complete an asynchronous requestTime call.

Return
The time granted to the federate, will return helics_time_maxtime if the simulation has terminated.
Parameters
  • fed: The federate to make the request of.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_time helicsFederateRequestTimeIterative(helics_federate fed, helics_time requestTime, helics_iteration_request iterate, helics_iteration_result * outIteration, helics_error * err)

Request an iterative time.

This call allows for finer grain control of the iterative process than /ref helicsFederateRequestTime. It takes a time and and iteration request, and returns a time and iteration status.

Return
The granted time, will return helics_time_maxtime if the simulation has terminated along with the appropriate iteration result. This function also returns the iteration specification of the result.
Parameters
  • fed: The federate to make the request of.
  • requestTime: The next desired time.
  • iterate: The requested iteration mode.
  • outIteration: The iteration specification of the result.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateRequestTimeIterativeAsync(helics_federate fed, helics_time requestTime, helics_iteration_request iterate, helics_error * err)

Request an iterative time through an asynchronous call.

This call allows for finer grain control of the iterative process than /ref helicsFederateRequestTime. It takes a time and iteration request, and returns a time and iteration status. Call /ref helicsFederateRequestTimeIterativeComplete to finish the process.

Parameters
  • fed: The federate to make the request of.
  • requestTime: The next desired time.
  • iterate: The requested iteration mode.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_time helicsFederateRequestTimeIterativeComplete(helics_federate fed, helics_iteration_result * outIterate, helics_error * err)

Complete an iterative time request asynchronous call.

Return
The granted time, will return helics_time_maxtime if the simulation has terminated. This function also returns the iteration specification of the result.
Parameters
  • fed: The federate to make the request of.
  • outIterate: The iteration specification of the result.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateSetFlagOption(helics_federate fed, int flag, helics_bool flagValue, helics_error * err)

Set a flag for the federate.

Parameters
  • fed: The federate to alter a flag for.
  • flag: The flag to change.
  • flagValue: The new value of the flag. 0 for false, !=0 for true.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateSetGlobal(helics_federate fed, const char * valueName, const char * value, helics_error * err)

Set a federation global value through a federate.

This overwrites any previous value for this name.

Parameters
  • fed: The federate to set the global through.
  • valueName: The name of the global to set.
  • value: The value of the global.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsFederateSetIntegerProperty(helics_federate fed, int intProperty, int propertyVal, helics_error * err)

Set an integer based property of a federate.

Parameters
  • fed: The federate to change the property for.
  • intProperty: The property to set.
  • propertyVal: The value of the property.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateSetSeparator(helics_federate fed, char separator, helics_error * err)

Set the separator character in a federate.

The separator character is the separation character for local publications/endpoints in creating their global name. For example if the separator character is ‘/’ then a local endpoint would have a globally reachable name of fedName/localName.

Parameters
  • fed: The federate info object to alter.
  • separator: The character to use as a separator.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFederateSetTimeProperty(helics_federate fed, int timeProperty, helics_time time, helics_error * err)

Set a time based property for a federate.

Parameters
  • fed: The federate object to set the property for.
  • timeProperty: A integer code for a time property.
  • time: The requested value of the property.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsFilterAddDeliveryEndpoint(helics_filter filt, const char * deliveryEndpoint, helics_error * err)

Add a delivery endpoint to a cloning filter.

All cloned messages are sent to the delivery address(es).

Parameters
  • filt: The given filter.
  • deliveryEndpoint: The name of the endpoint to deliver messages to.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsFilterAddDestinationTarget(helics_filter filt, const char * dest, helics_error * err)

Add a destination target to a filter.

All messages going to a destination are copied to the delivery address(es).

Parameters
  • filt: The given filter to add a destination target to.
  • dest: The name of the endpoint to add as a destination target.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsFilterAddSourceTarget(helics_filter filt, const char * source, helics_error * err)

Add a source target to a filter.

All messages coming from a source are copied to the delivery address(es).

Parameters
  • filt: The given filter.
  • source: The name of the endpoint to add as a source target. .
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT const char* helicsFilterGetInfo(helics_filter filt)

Get the data in the info field of a filter.

Return
A string with the info field string.
Parameters
  • filt: The given filter.

HELICS_EXPORT const char* helicsFilterGetName(helics_filter filt)

Get the name of the filter and store in the given string.

get the name of the filter

Return
A string with the name of the filter.
Parameters
  • filt: The given filter.

HELICS_EXPORT helics_bool helicsFilterGetOption(helics_filter filt, int option)

Get a handle option for the filter.

Parameters
  • filt: The given filter to query.
  • option: The option to query /ref helics_handle_options.

HELICS_EXPORT void helicsFilterRemoveDeliveryEndpoint(helics_filter filt, const char * deliveryEndpoint, helics_error * err)

Remove a delivery destination from a cloning filter.

Parameters
  • filt: The given filter (must be a cloning filter).
  • deliveryEndpoint: A string with the delivery endpoint to remove.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsFilterRemoveTarget(helics_filter filt, const char * target, helics_error * err)

Remove a destination target from a filter.

Parameters
  • filt: The given filter.
  • target: The named endpoint to remove as a target.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsFilterSet(helics_filter filt, const char * prop, double val, helics_error * err)

Set a property on a filter.

Parameters
  • filt: The filter to modify.
  • prop: A string containing the property to set.
  • val: A numerical value for the property.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsFilterSetInfo(helics_filter filt, const char * info, helics_error * err)

Set the data in the info field for a filter.

Parameters
  • filt: The given filter.
  • info: The string to set.
  • err: An error object to fill out in case of an error.

HELICS_EXPORT void helicsFilterSetOption(helics_filter filt, int option, helics_bool value, helics_error * err)

Set the data in the info field for a filter.

Parameters
  • filt: The given filter.
  • option: The option to set /ref helics_handle_options.
  • value: The value of the option (helics_true or helics_false).
  • err: An error object to fill out in case of an error.

HELICS_EXPORT void helicsFilterSetString(helics_filter filt, const char * prop, const char * val, helics_error * err)

Set a string property on a filter.

Parameters
  • filt: The filter to modify.
  • prop: A string containing the property to set.
  • val: A string containing the new value.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_federate helicsGetFederateByName(const char * fedName, helics_error * err)

Get an existing federate object from a core by name.

The federate must have been created by one of the other functions and at least one of the objects referencing the created federate must still be active in the process.

Return
NULL if no fed is available by that name otherwise a helics_federate with that name.
Parameters
  • fedName: The name of the federate to retrieve.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT int helicsGetOptionIndex(const char * val)

Get an option index for use in /ref helicsPublicationSetOption, /ref helicsInputSetOption, /ref helicsEndpointSetOption, /ref helicsFilterSetOption, and the corresponding get functions.

Return
An int with the option index or (-1) if not a valid property.
Parameters
  • val: A string with the option name.

HELICS_EXPORT int helicsGetPropertyIndex(const char * val)

Get a property index for use in /ref helicsFederateInfoSetFlagOption, /ref helicsFederateInfoSetTimeProperty, or /ref helicsFederateInfoSetIntegerProperty

Return
An int with the property code or (-1) if not a valid property.
Parameters
  • val: A string with the property name.

HELICS_EXPORT const char* helicsGetVersion(void)

Get a version string for HELICS.

HELICS_EXPORT void helicsInputAddTarget(helics_input ipt, const char * target, helics_error * err)

Add a publication to the list of data that an input subscribes to.

Parameters
  • ipt: The named input to modify.
  • target: The name of a publication that an input should subscribe to.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT helics_bool helicsInputGetBoolean(helics_input ipt, helics_error * err)

Get a boolean value from a subscription.

Return
A boolean value of current input value.
Parameters
  • ipt: The input to get the data for.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT char helicsInputGetChar(helics_input ipt, helics_error * err)

Get a single character value from an input.

Return
The resulting character value. NAK (negative acknowledgment) symbol returned on error
Parameters
  • ipt: The input to get the data for.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsInputGetComplex(helics_input ipt, double * real, double * imag, helics_error * err)

Get a pair of double forming a complex number from a subscriptions.

Return
a pair of floating point values that represent the real and imag values
Parameters
  • ipt: The input to get the data for.
  • real: Memory location to place the real part of a value.
  • imag: Memory location to place the imaginary part of a value.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function. On error the values will not be altered.

HELICS_EXPORT helics_complex helicsInputGetComplexObject(helics_input ipt, helics_error * err)

Get a complex object from an input object.

Return
A helics_complex structure with the value.
Parameters
  • ipt: The input to get the data for.
  • err: A helics error object, if the object is not empty the function is bypassed otherwise it is filled in if there is an error.

HELICS_EXPORT double helicsInputGetDouble(helics_input ipt, helics_error * err)

Get a double value from a subscription.

Return
The double value of the input.
Parameters
  • ipt: The input to get the data for.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT const char* helicsInputGetInfo(helics_input inp)

Get the data in the info field of an input.

Return
A string with the info field string.
Parameters
  • inp: The input to query.

HELICS_EXPORT int64_t helicsInputGetInteger(helics_input ipt, helics_error * err)

Get an integer value from a subscription.

Return
An int64_t value with the current value of the input.
Parameters
  • ipt: The input to get the data for.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT const char* helicsInputGetKey(helics_input ipt)

Get the key of an input.

Return
A void enumeration, helics_ok if everything worked.
Parameters
  • ipt: The input to query.

HELICS_EXPORT void helicsInputGetNamedPoint(helics_input ipt, char * outputString, int maxStringLen, int * actualLength, double * val, helics_error * err)

Get a named point from a subscription.

Return
a string and a double value for the named point
Parameters
  • ipt: The input to get the result for.
  • outputString: Storage for copying a null terminated string.
  • maxStringLen: The maximum size of information that str can hold.
  • actualLength: The actual length of the string
  • val: The double value for the named point.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT helics_bool helicsInputGetOption(helics_input inp, int option)

Get the data in the info field of an input.

Return
A string with the info field string.
Parameters
  • inp: The input to query.
  • option: Integer representation of the option in question see /ref helics_handle_options.

HELICS_EXPORT const char* helicsInputGetPublicationType(helics_input ipt)

Get the type the publisher to an input is sending.

Return
A const char * with the type name.
Parameters
  • ipt: The input to query.

HELICS_EXPORT void helicsInputGetRawValue(helics_input ipt, void * data, int maxDatalen, int * actualSize, helics_error * err)

Get the raw data for the latest value of a subscription.

Return
Raw string data.
Parameters
  • ipt: The input to get the data for.
  • data: The memory location of the data
  • maxDatalen: The maximum size of information that data can hold.
  • actualSize: The actual length of data copied to data.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT int helicsInputGetRawValueSize(helics_input ipt)

Get the size of the raw value for subscription.

Return
The size of the raw data/string in bytes.

HELICS_EXPORT void helicsInputGetString(helics_input ipt, char * outputString, int maxStringLen, int * actualLength, helics_error * err)

Get a string value from a subscription.

Return
A string data
Parameters
  • ipt: The input to get the data for.
  • outputString: Storage for copying a null terminated string.
  • maxStringLen: The maximum size of information that str can hold.
  • actualLength: The actual length of the string.
  • err: Error term for capturing errors.

HELICS_EXPORT int helicsInputGetStringSize(helics_input ipt)

Get the size of a value for subscription assuming return as a string.

Return
The size of the string.

HELICS_EXPORT helics_time helicsInputGetTime(helics_input ipt, helics_error * err)

Get a time value from a subscription.

Return
The resulting time value.
Parameters
  • ipt: The input to get the data for.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT const char* helicsInputGetType(helics_input ipt)

Get the type of an input.

Return
A void enumeration, helics_ok if everything worked.
Parameters
  • ipt: The input to query.

HELICS_EXPORT const char* helicsInputGetUnits(helics_input ipt)

Get the units of an input.

Return
A void enumeration, helics_ok if everything worked.
Parameters
  • ipt: The input to query.

HELICS_EXPORT void helicsInputGetVector(helics_input ipt, double data[], int maxlen, int * actualSize, helics_error * err)

Get a vector from a subscription.

Return
a list of floating point values
Parameters
  • ipt: The input to get the result for.
  • data: The location to store the data.
  • maxlen: The maximum size of the vector.
  • actualSize: Location to place the actual length of the resulting vector.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT int helicsInputGetVectorSize(helics_input ipt)

Get the size of a value for subscription assuming return as an array of doubles.

Return
The number of doubles in a returned vector.

HELICS_EXPORT helics_bool helicsInputIsUpdated(helics_input ipt)

Check if a particular subscription was updated.

Return
helics_true if it has been updated since the last value retrieval.

HELICS_EXPORT helics_time helicsInputLastUpdateTime(helics_input ipt)

Get the last time a subscription was updated.

HELICS_EXPORT void helicsInputSetDefaultBoolean(helics_input ipt, helics_bool val, helics_error * err)

Set the default as a boolean.

Parameters
  • ipt: The input to set the default for.
  • val: The default boolean value.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultChar(helics_input ipt, char val, helics_error * err)

Set the default as a char.

Parameters
  • ipt: The input to set the default for.
  • val: The default char value.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultComplex(helics_input ipt, double real, double imag, helics_error * err)

Set the default as a complex number.

Parameters
  • ipt: The input to set the default for.
  • real: The default real value.
  • imag: The default imaginary value.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultDouble(helics_input ipt, double val, helics_error * err)

Set the default as a double.

Parameters
  • ipt: The input to set the default for.
  • val: The default double value.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultInteger(helics_input ipt, int64_t val, helics_error * err)

Set the default as an integer.

Parameters
  • ipt: The input to set the default for.
  • val: The default integer.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultNamedPoint(helics_input ipt, const char * str, double val, helics_error * err)

Set the default as a NamedPoint.

Parameters
  • ipt: The input to set the default for.
  • str: A pointer to a string representing the name.
  • val: A double value for the value of the named point.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultRaw(helics_input ipt, const void * data, int inputDataLength, helics_error * err)

Set the default as a raw data array.

Parameters
  • ipt: The input to set the default for.
  • data: A pointer to the raw data to use for the default.
  • inputDataLength: The size of the raw data.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultString(helics_input ipt, const char * str, helics_error * err)

Set the default as a string.

Parameters
  • ipt: The input to set the default for.
  • str: A pointer to the default string.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultTime(helics_input ipt, helics_time val, helics_error * err)

Set the default as a time.

Parameters
  • ipt: The input to set the default for.
  • val: The default time value.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetDefaultVector(helics_input ipt, const double * vectorInput, int vectorLength, helics_error * err)

Set the default as a vector of doubles.

Parameters
  • ipt: The input to set the default for.
  • vectorInput: A pointer to an array of double data.
  • vectorLength: The number of points to publish.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsInputSetInfo(helics_input inp, const char * info, helics_error * err)

Set the data in the info field for an input.

Parameters
  • inp: The input to query.
  • info: The string to set.
  • err: An error object to fill out in case of an error.

HELICS_EXPORT void helicsInputSetOption(helics_input inp, int option, helics_bool value, helics_error * err)

Set the data in the info field for an input.

Parameters
  • inp: The input to query.
  • option: The option to set for the input /ref helics_handle_options.
  • value: The value to set the option to.
  • err: An error object to fill out in case of an error.

HELICS_EXPORT helics_bool helicsIsCoreTypeAvailable(const char * type)

Returns true if core/broker type specified is available in current compilation.

Options include “zmq”, “udp”, “ipc”, “interprocess”, “tcp”, “default”, “mpi”.

Parameters
  • type: A string representing a core type.

HELICS_EXPORT void helicsPublicationAddTarget(helics_publication pub, const char * target, helics_error * err)

Add a named input to the list of targets a publication publishes to.

Parameters
  • pub: The publication to add the target for.
  • target: The name of an input that the data should be sent to.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT const char* helicsPublicationGetInfo(helics_publication pub)

Get the data in the info field of an publication.

Return
A string with the info field string.
Parameters
  • pub: The publication to query.

HELICS_EXPORT const char* helicsPublicationGetKey(helics_publication pub)

Get the key of a publication.

This will be the global key used to identify the publication to the federation.

Return
A void enumeration, helics_ok if everything worked.
Parameters
  • pub: The publication to query.

HELICS_EXPORT helics_bool helicsPublicationGetOption(helics_publication pub, int option)

Get the data in the info field of a publication.

Return
A string with the info field string.
Parameters
  • pub: The publication to query.
  • option: The value to query see /ref helics_handle_options.

HELICS_EXPORT const char* helicsPublicationGetType(helics_publication pub)

Get the type of a publication.

Return
A void enumeration, helics_ok if everything worked.
Parameters
  • pub: The publication to query.

HELICS_EXPORT const char* helicsPublicationGetUnits(helics_publication pub)

Get the units of a publication.

Return
A void enumeration, helics_ok if everything worked.
Parameters
  • pub: The publication to query.

HELICS_EXPORT void helicsPublicationPublishBoolean(helics_publication pub, helics_bool val, helics_error * err)

Publish a Boolean Value.

Parameters
  • pub: The publication to publish for.
  • val: The boolean value to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishChar(helics_publication pub, char val, helics_error * err)

Publish a single character.

Parameters
  • pub: The publication to publish for.
  • val: The numerical value to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishComplex(helics_publication pub, double real, double imag, helics_error * err)

Publish a complex value (or pair of values).

Parameters
  • pub: The publication to publish for.
  • real: The real part of a complex number to publish.
  • imag: The imaginary part of a complex number to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishDouble(helics_publication pub, double val, helics_error * err)

Publish a double floating point value.

Parameters
  • pub: The publication to publish for.
  • val: The numerical value to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishInteger(helics_publication pub, int64_t val, helics_error * err)

Publish an integer value.

Parameters
  • pub: The publication to publish for.
  • val: The numerical value to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishNamedPoint(helics_publication pub, const char * str, double val, helics_error * err)

Publish a named point.

Parameters
  • pub: The publication to publish for.
  • str: A string for the name to publish.
  • val: A double for the value to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishRaw(helics_publication pub, const void * data, int inputDataLength, helics_error * err)

Publish raw data from a char * and length.

Parameters
  • pub: The publication to publish for.
  • data: A pointer to the raw data.
  • inputDataLength: The size in bytes of the data to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishString(helics_publication pub, const char * str, helics_error * err)

Publish a string.

Parameters
  • pub: The publication to publish for.
  • str: The string to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishTime(helics_publication pub, helics_time val, helics_error * err)

Publish a time value.

Parameters
  • pub: The publication to publish for.
  • val: The numerical value to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationPublishVector(helics_publication pub, const double * vectorInput, int vectorLength, helics_error * err)

Publish a vector of doubles.

Parameters
  • pub: The publication to publish for.
  • vectorInput: A pointer to an array of double data.
  • vectorLength: The number of points to publish.
  • err: A pointer to an error object for catching errors.

HELICS_EXPORT void helicsPublicationSetInfo(helics_publication pub, const char * info, helics_error * err)

Set the data in the info field for a publication.

Parameters
  • pub: The publication to set the info field for.
  • info: The string to set.
  • err: An error object to fill out in case of an error.

HELICS_EXPORT void helicsPublicationSetOption(helics_publication pub, int option, helics_bool val, helics_error * err)

Set the data in the info field for a publication.

Parameters
  • pub: The publication to query.
  • option: Integer code for the option to set /ref helics_handle_options.
  • val: The value to set the option to.
  • err: An error object to fill out in case of an error.

HELICS_EXPORT const char* helicsQueryBrokerExecute(helics_query query, helics_broker broker, helics_error * err)

Execute a query directly on a broker.

The call will block until the query finishes which may require communication or other delays.

Return
A pointer to a string. The string will remain valid until the query is freed or executed again. The return will be nullptr if broker or query is an invalid object, the return string will be “#invalid” if the query itself was invalid
Parameters
  • query: The query object to use in the query.
  • broker: The broker to send the query to.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT const char* helicsQueryCoreExecute(helics_query query, helics_core core, helics_error * err)

Execute a query directly on a core.

The call will block until the query finishes which may require communication or other delays.

Return
A pointer to a string. The string will remain valid until the query is freed or executed again. The return will be nullptr if core or query is an invalid object, the return string will be “#invalid” if the query itself was invalid.
Parameters
  • query: The query object to use in the query.
  • core: The core to send the query to.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT const char* helicsQueryExecute(helics_query query, helics_federate fed, helics_error * err)

Execute a query.

The call will block until the query finishes which may require communication or other delays.

Return
A pointer to a string. The string will remain valid until the query is freed or executed again. The return will be nullptr if fed or query is an invalid object, the return string will be “#invalid” if the query itself was invalid.
Parameters
  • query: The query object to use in the query.
  • fed: A federate to send the query through.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsQueryExecuteAsync(helics_query query, helics_federate fed, helics_error * err)

Execute a query in a non-blocking call.

Parameters
  • query: The query object to use in the query.
  • fed: A federate to send the query through.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT const char* helicsQueryExecuteComplete(helics_query query, helics_error * err)

Complete the return from a query called with /ref helicsExecuteQueryAsync.

The function will block until the query completes /ref isQueryComplete can be called to determine if a query has completed or not.

Return
A pointer to a string. The string will remain valid until the query is freed or executed again. The return will be nullptr if query is an invalid object
Parameters
  • query: The query object to complete execution of.
  • err: An error object that will contain an error code and string if any error occurred during the execution of the function.

HELICS_EXPORT void helicsQueryFree(helics_query query)

Free the memory associated with a query object.

HELICS_EXPORT helics_bool helicsQueryIsCompleted(helics_query query)

Check if an asynchronously executed query has completed.

This function should usually be called after a QueryExecuteAsync function has been called.

Return
Will return helics_true if an asynchronous query has completed or a regular query call was made with a result, and false if an asynchronous query has not completed or is invalid
Parameters
  • query: The query object to check if completed.

HELICS_EXPORT const char* helicsSubscriptionGetKey(helics_input ipt)

Get the key of a subscription.

Return
A const char with the subscription key.

struct helics_complex

structure defining a basic complex type

helics_core_type_default

=

0


a default core type that will default to something available

helics_core_type_http = 12

a core type using http for communication

helics_core_type_interprocess = 4

interprocess uses memory mapped files to transfer data (for use when all federates are on the same machine

helics_core_type_ipc = 5

interprocess uses memory mapped files to transfer data (for use when all federates are on the same machine ipc is the same as /ref helics_core_type_interprocess

helics_core_type_mpi = 2

use MPI for operation on a parallel cluster

helics_core_type_nng = 9

for using the nanomsg communications

helics_core_type_tcp = 6

use a generic TCP protocol message stream to send messages

helics_core_type_tcp_ss

=

11


a single socket version of the TCP core for more easily handling firewalls

helics_core_type_test = 3

use the Test core if all federates are in the same process

helics_core_type_udp = 7

use UDP packets to send the data

helics_core_type_zmq = 1

use the Zero MQ networking protocol

helics_core_type_zmq_test

=

10


single socket version of ZMQ core usually for high fed count on the same system

helics_data_type_any = 25262

open type that can be anything

helics_data_type_boolean = 7

a boolean data type

helics_data_type_complex = 3

a pair of doubles representing a complex number

helics_data_type_complex_vector = 5

a complex vector object

helics_data_type_double = 1

a double precision floating point number

helics_data_type_int = 2

a 64 bit integer

helics_data_type_named_point = 6

a named point consisting of a string and a double

helics_data_type_raw = 25

raw data type

helics_data_type_string = 0

a sequence of characters

helics_data_type_time = 8

time data type

helics_data_type_vector = 4

an array of doubles

helics_error_connection_failure = -2

the operation to connect has failed

helics_error_discard = -5

the input was discarded and not used for some reason

helics_error_execution_failure = -14

the function execution has failed

helics_error_invalid_argument

=

-4


the parameter passed was invalid and unable to be used

helics_error_invalid_function_call

=

-10


the call made was invalid in the present state of the calling object

helics_error_invalid_object = -3

indicator that the object used was not a valid object

helics_error_invalid_state_transition

=

-9


error issued when an invalid state transition occurred

helics_error_other = -101

the function produced a helics error of some other type

helics_error_registration_failure = -1

registration has failed

helics_error_system_failure

=

-6


the federate has terminated unexpectedly and the call cannot be completed

const helics_bool helics_false = 0

indicator used for a false response

helics_filter_type_clone = 5

a filter type that duplicates a message and sends the copy to a different destination

helics_filter_type_custom = 0

a custom filter type that executes a user defined callback

helics_filter_type_delay = 1

a filter type that executes a fixed delay on a message

helics_filter_type_firewall = 6

a customizable filter type that can perform different actions on a message based on firewall like rules

helics_filter_type_random_delay = 2

a filter type that executes a random delay on the messages

helics_filter_type_random_drop = 3

a filter type that randomly drops messages

helics_filter_type_reroute = 4

a filter type that reroutes a message to a different destination than originally specified

helics_flag_delay_init_entry = 45

used to delay a core from entering initialization mode even if it would otherwise be ready

helics_flag_enable_init_entry = 47

used to clear the HELICS_DELAY_INIT_ENTRY flag in cores

helics_flag_forward_compute = 14

flag indicating that a federate performs forward computation and does internal rollback

helics_flag_ignore_time_mismatch_warnings = 67

used to not display warnings on mismatched requested times

helics_flag_interruptible = 2

flag indicating that a federate can be interrupted

helics_flag_observer = 0

flag indicating that a federate is observe only

helics_flag_only_transmit_on_change = 6

flag indicating a federate/interface should only transmit values if they have changed(binary equivalence)

helics_flag_only_update_on_change = 8

flag indicating a federate/interface should only trigger an update if a value has changed (binary equivalence)

helics_flag_realtime = 16

flag indicating that a federate needs to run in real time

helics_flag_rollback = 12

flag indicating that a federate has rollback capability

helics_flag_single_thread_federate = 27

flag indicating that the federate will only interact on a single thread

helics_flag_source_only = 4

flag indicating that a federate/interface is a signal generator only

helics_flag_uninterruptible = 1

flag indicating that a federate can only return requested times

helics_flag_wait_for_current_time_update = 10

flag indicating a federate should only grant time if all other federates have already passed the requested time

helics_handle_option_buffer_data = 411

specify that the last data should be buffered and send on subscriptions after init

helics_handle_option_connection_optional = 402

specify that a connection is NOT required for an interface and will only be made if available no warning will be issues if not available

helics_handle_option_connection_required = 397

specify that a connection is required for an interface and will generate an error if not available

helics_handle_option_ignore_interrupts = 475

specify that an interface does not participate in determining time interrupts

helics_handle_option_multiple_connections_allowed = 409

specify that multiple connections are allowed for an interface

helics_handle_option_only_transmit_on_change = 6

specify that an interface will only transmit on change(only applicable to publications)

helics_handle_option_only_update_on_change = 8

specify that an interface will only update if the value has actually changed

helics_handle_option_single_connection_only = 407

specify that only a single connection is allowed for an interface

helics_handle_option_strict_type_checking = 414

specify that the types should be checked strictly for pub/sub and filters

helics_iteration_request_force_iteration

force iteration return when able

helics_iteration_request_iterate_if_needed

only return an iteration if necessary

helics_iteration_request_no_iteration

no iteration is requested

helics_iteration_result_error

there was an error

helics_iteration_result_halted

the federation has halted

helics_iteration_result_iterating

the federate is iterating at current time

helics_iteration_result_next_step

the iterations have progressed to the next time

helics_log_level_connections = 3

summary+ notices about federate and broker connections +messages about network connections

helics_log_level_data = 6

timing+ data transfer notices

helics_log_level_error = 0

only print error level indicators

helics_log_level_interfaces = 4

connections+ interface definitions

helics_log_level_no_print = -1

don’t print anything except a few catastrophic errors

helics_log_level_summary = 2

warning errors and summary level information

helics_log_level_timing = 5

interfaces + timing message

helics_log_level_trace = 7

all internal messages

helics_log_level_warning = 1

only print warnings and errors

struct helics_message

Message_t mapped to a c compatible structure

use of this structure is deprecated in HELICS 2.5 and removed in HELICS 3.0

helics_ok = 0

the function executed successfully

helics_property_int_log_level = 271

integer property controlling the log level in a federate see helics_log_levels

helics_property_int_max_iterations = 259

integer property controlling the maximum number of iterations in a federate

helics_property_time_delta = 137

the property controlling the minimum time delta for a federate

helics_property_time_input_delay = 148

the property controlling input delay for a federate

helics_property_time_offset = 141

the property controlling time offset for the period of federate

helics_property_time_output_delay = 150

the property controlling output delay for a federate

helics_property_time_period = 140

the property controlling the period for a federate

helics_property_time_rt_lag = 143

the property controlling real time lag for a federate the max time a federate can lag real time

helics_property_time_rt_lead = 144

the property controlling real time lead for a federate the max time a federate can be ahead of real time

helics_property_time_rt_tolerance = 145

the property controlling real time tolerance for a federate sets both rt_lag and rt_lead

helics_state_error

error state no core communication is possible but values can be retrieved

helics_state_execution

entered after the enterExectuationState call has returned

helics_state_finalize

the federate has finished executing normally final values may be retrieved

helics_state_initialization

entered after the enterInitializingMode call has returned

helics_state_pending_exec

state pending EnterExecution State

helics_state_pending_finalize

state that the federate is pending a finalize request

helics_state_pending_init

indicator that the federate is pending entry to initialization state

helics_state_pending_iterative_time

state that the federate is pending an iterative time request

helics_state_pending_time

state that the federate is pending a timeRequest

helics_state_startup = 0

when created the federate is in startup state

const helics_time helics_time_epsilon = 1.0e-9

definition of the minimum time resolution

const helics_time helics_time_invalid = -1.785e39

definition of an invalid time that has no meaning

const helics_time helics_time_maxtime = 9223372036.854774

definition of time signifying the federate has terminated or to run until the end of the simulation

const helics_time helics_time_zero = 0.0

definition of time zero-the beginning of simulation

const helics_bool helics_true = 1

indicator used for a true response

helics_warning = -8

the function issued a warning of some kind

Warning

doxygenenumvalue: Cannot find enumvalue “other_error_type” in doxygen xml output for project “helics” from directory: /home/docs/checkouts/readthedocs.org/user_builds/helics/checkouts/v2.5.0/build-doxygen/docs/xml