![]() |
helics
3.3.0
|
Functions dealing with callbacks for the shared library. More...
#include "helicsCore.h"
Go to the source code of this file.
Functions | |
void | helicsBrokerSetLoggingCallback (HelicsBroker broker, void(*logger)(int loglevel, const char *identifier, const char *message, void *userData), void *userdata, HelicsError *err) |
void | helicsCoreSetLoggingCallback (HelicsCore core, void(*logger)(int loglevel, const char *identifier, const char *message, void *userData), void *userdata, HelicsError *err) |
void | helicsFederateSetLoggingCallback (HelicsFederate fed, void(*logger)(int loglevel, const char *identifier, const char *message, void *userData), void *userdata, HelicsError *err) |
void | helicsFilterSetCustomCallback (HelicsFilter filter, HelicsMessage(*filtCall)(HelicsMessage message, void *userData), void *userdata, HelicsError *err) |
void | helicsTranslatorSetCustomCallback (HelicsTranslator translator, void(*toMessageCall)(HelicsDataBuffer value, HelicsMessage message, void *userData), void(*toValueCall)(HelicsMessage message, HelicsDataBuffer value, void *userData), void *userdata, HelicsError *err) |
void | helicsFederateSetQueryCallback (HelicsFederate fed, void(*queryAnswer)(const char *query, int querySize, HelicsQueryBuffer buffer, void *userdata), void *userdata, HelicsError *err) |
void | helicsFederateSetTimeRequestEntryCallback (HelicsFederate fed, void(*requestTime)(HelicsTime currentTime, HelicsTime requestTime, HelicsBool iterating, void *userdata), void *userdata, HelicsError *err) |
void | helicsFederateSetTimeUpdateCallback (HelicsFederate fed, void(*timeUpdate)(HelicsTime newTime, HelicsBool iterating, void *userdata), void *userdata, HelicsError *err) |
void | helicsFederateSetStateChangeCallback (HelicsFederate fed, void(*stateChange)(HelicsFederateState newState, HelicsFederateState oldState, void *userdata), void *userdata, HelicsError *err) |
void | helicsFederateSetTimeRequestReturnCallback (HelicsFederate fed, void(*requestTimeReturn)(HelicsTime newTime, HelicsBool iterating, void *userdata), void *userdata, HelicsError *err) |
void | helicsQueryBufferFill (HelicsQueryBuffer buffer, const char *queryResult, int strSize, HelicsError *err) |
Functions dealing with callbacks for the shared library.
void helicsBrokerSetLoggingCallback | ( | HelicsBroker | broker, |
void(*)(int loglevel, const char *identifier, const char *message, void *userData) | logger, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set the logging callback to a broker.
Add a logging callback function to a broker. The logging callback will be called when a message flows into a broker from the core or from a broker.
broker | The broker object in which to set the callback. | |
logger | A callback with signature void(int, const char *, const char *, void *); the function arguments are loglevel, an identifier, a message string, and a pointer to user data. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
void helicsCoreSetLoggingCallback | ( | HelicsCore | core, |
void(*)(int loglevel, const char *identifier, const char *message, void *userData) | logger, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set the logging callback for a core.
Add a logging callback function to a core. The logging callback will be called when a message flows into a core from the core or from a broker.
core | The core object in which to set the callback. | |
logger | A callback with signature void(int, const char *, const char *, void *); The function arguments are loglevel, an identifier, a message string, and a pointer to user data. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
void helicsFederateSetLoggingCallback | ( | HelicsFederate | fed, |
void(*)(int loglevel, const char *identifier, const char *message, void *userData) | logger, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set the logging callback for a federate.
Add a logging callback function to a federate. The logging callback will be called when a message flows into a federate from the core or from a federate.
fed | The federate object in which to create a subscription must have been created with helicsCreateValueFederate or helicsCreateCombinationFederate. | |
logger | A callback with signature void(int, const char *, const char *, void *); The function arguments are loglevel, an identifier string, a message string, and a pointer to user data. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
void helicsFederateSetQueryCallback | ( | HelicsFederate | fed, |
void(*)(const char *query, int querySize, HelicsQueryBuffer buffer, void *userdata) | queryAnswer, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set callback for queries executed against a federate.
There are many queries that HELICS understands directly, but it is occasionally useful to have a federate be able to respond to specific queries with answers specific to a federate.
fed | The federate to set the callback for. | |
queryAnswer | A callback with signature const char *(const char *query, int querySize, HelicsQueryBuffer buffer, void *userdata); The function arguments include the query string requesting an answer along with its size; the string is not guaranteed to be null terminated. HelicsQueryBuffer is the buffer intended to filled out by the userCallback. The buffer can be empty if the query is not recognized and HELICS will generate the appropriate response. The buffer is used to ensure memory ownership separation between user code and HELICS code. The HelicsQueryBufferFill method can be used to load a string into the buffer. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
void helicsFederateSetStateChangeCallback | ( | HelicsFederate | fed, |
void(*)(HelicsFederateState newState, HelicsFederateState oldState, void *userdata) | stateChange, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set callback for the federate mode change.
This callback will be executed every time the operating mode of the federate changes.
fed | The federate to set the callback for. | |
stateChange | A callback with signature void(HelicsFederateState newState, HelicsFederateState oldState, void *userdata); The function arguments are the new state, the old state, and pointer to the userdata. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
void helicsFederateSetTimeRequestEntryCallback | ( | HelicsFederate | fed, |
void(*)(HelicsTime currentTime, HelicsTime requestTime, HelicsBool iterating, void *userdata) | requestTime, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set callback for the time request.
This callback will be executed when a valid time request is made. It is intended for the possibility of embedded data grabbers in a callback to simplify user code.
fed | The federate to set the callback for. | |
requestTime | A callback with signature void(HelicsTime currentTime, HelicsTime requestTime, bool iterating, void *userdata); The function arguments are the current time value, the requested time value, a bool indicating that the time is iterating, and pointer to the userdata. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
void helicsFederateSetTimeRequestReturnCallback | ( | HelicsFederate | fed, |
void(*)(HelicsTime newTime, HelicsBool iterating, void *userdata) | requestTimeReturn, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set callback for the time request return.
This callback will be executed after all other callbacks for a time request return. This callback will be the last thing executed before returning control to the user program. The difference between this and the TimeUpdate callback is the order of execution. The timeUpdate callback is executed prior to individual interface callbacks, this callback is executed after all others.
fed | The federate to set the callback for. | |
requestTimeReturn | A callback with signature void(HelicsTime newTime, bool iterating, void *userdata); The function arguments are the new time value, a bool indicating that the time is iterating, and pointer to the userdata. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
void helicsFederateSetTimeUpdateCallback | ( | HelicsFederate | fed, |
void(*)(HelicsTime newTime, HelicsBool iterating, void *userdata) | timeUpdate, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set callback for the time update.
This callback will be executed every time the simulation time is updated starting on entry to executing mode.
fed | The federate to set the callback for. | |
timeUpdate | A callback with signature void(HelicsTime newTime, bool iterating, void *userdata); The function arguments are the new time value, a bool indicating that the time is iterating, and pointer to the userdata. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
References HELICS_FALSE, and HELICS_TRUE.
void helicsFilterSetCustomCallback | ( | HelicsFilter | filter, |
HelicsMessage(*)(HelicsMessage message, void *userData) | filtCall, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set a general callback for a custom filter.
Add a custom filter callback for creating a custom filter operation in the C shared library.
filter | The filter object to set the callback for. | |
filtCall | A callback with signature helics_message_object(helics_message_object, void *); The function arguments are the message to filter and a pointer to user data. The filter should return a new message. | |
userdata | A pointer to user data that is passed to the function when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |
void helicsQueryBufferFill | ( | HelicsQueryBuffer | buffer, |
const char * | queryResult, | ||
int | strSize, | ||
HelicsError * | err | ||
) |
Set the data for a query callback.
There are many queries that HELICS understands directly, but it is occasionally useful to have a federate be able to respond to specific queries with answers specific to a federate.
buffer | The buffer received in a helicsQueryCallback. | |
queryResult | Pointer to the data with the query result to fill the buffer with. | |
strSize | The size of the string. | |
[in,out] | err | A pointer to an error object for catching errors. |
References HELICS_ERROR_INVALID_OBJECT.
void helicsTranslatorSetCustomCallback | ( | HelicsTranslator | translator, |
void(*)(HelicsDataBuffer value, HelicsMessage message, void *userData) | toMessageCall, | ||
void(*)(HelicsMessage message, HelicsDataBuffer value, void *userData) | toValueCall, | ||
void * | userdata, | ||
HelicsError * | err | ||
) |
Set a general callback for a custom translator.
Add a pair of custom callbacks for running a translator operation in the C shared library.
translator | The translator object to set the callbacks for. | |
toMessageCall | A callback with signature void(HelicsDataBuffer, HelicsMessage, void *); The function arguments are raw Value data, the messageObject to fill out and a pointer to user data. | |
toValueCall | A callback with signature void(HelicsMessage, HelicsDataBuffer, void *); The function arguments are a message object, the data buffer to fill out and a pointer to user data. | |
userdata | A pointer to user data that is passed to the functions when executing. | |
[in,out] | err | A pointer to an error object for catching errors. |