helics  2.8.1
Public Member Functions | Friends | List of all members
helicscpp::ValueFederate Class Reference

#include <ValueFederate.hpp>

+ Inheritance diagram for helicscpp::ValueFederate:

Public Member Functions

 ValueFederate (const std::string &fedName, FederateInfo &fi)
 
 ValueFederate (const std::string &configString)
 
 ValueFederate (const ValueFederate &vfed)
 
ValueFederateoperator= (const ValueFederate &fedObj)
 
 ValueFederate () HELICS_NOTHROW
 
Publication registerPublication (const std::string &name, const std::string &type, const std::string &units="")
 
Publication registerPublication (const std::string &name, helics_data_type type, const std::string &units="")
 
Publication registerGlobalPublication (const std::string &name, const std::string &type, const std::string &units="")
 
Publication registerGlobalPublication (const std::string &key, helics_data_type type, const std::string &units="")
 
Publication registerIndexedPublication (const std::string &key, int index1, helics_data_type type, const std::string &units="")
 
Publication registerIndexedPublication (const std::string &key, int index1, int index2, helics_data_type type, const std::string &units=std::string())
 
Publication registerPublicationIndexed (const std::string &key, int index1, helics_data_type type, const std::string &units="")
 
Publication registerPublicationIndexed (const std::string &key, int index1, int index2, helics_data_type type, const std::string &units=std::string())
 
void registerFromPublicationJSON (const std::string &json)
 
Publication getPublication (const std::string &name)
 
Publication getPublication (int index)
 
Input registerSubscription (const std::string &name, const std::string &units=std::string())
 
Input registerIndexedSubscription (const std::string &name, int index1, const std::string &units="")
 
Input registerIndexedSubscription (const std::string &name, int index1, int index2, const std::string &units="")
 
Input registerSubscriptionIndexed (const std::string &name, int index1, const std::string &units="")
 
Input registerSubscriptionIndexed (const std::string &name, int index1, int index2, const std::string &units="")
 
Input registerInput (const std::string &name, const std::string &type, const std::string &units="")
 
Input registerInput (const std::string &name, helics_data_type type, const std::string &units="")
 
Input registerGlobalInput (const std::string &name, const std::string &type, const std::string &units="")
 
Input registerGlobalInput (const std::string &key, helics_data_type type, const std::string &units="")
 
Input registerIndexedInput (const std::string &key, int index1, helics_data_type type, const std::string &units="")
 
Input registerIndexedInput (const std::string &key, int index1, int index2, helics_data_type type, const std::string &units=std::string())
 
Input getInput (const std::string &name)
 
Input getSubscription (int index)
 
int getInputCount () const
 
int getPublicationCount () const
 
std::vector< helics_inputqueryUpdates ()
 
void clearUpdates ()
 
void publishJSON (const std::string &json)
 
- Public Member Functions inherited from helicscpp::Federate
 Federate () HELICS_NOTHROW
 Default constructor.
 
 Federate (const Federate &fedObj)
 Copy constructor.
 
Federateoperator= (const Federate &fedObj)
 Copy assignment operator.
 
virtual ~Federate ()
 
 operator helics_federate () const
 
helics_federate baseObject () const
 
void setFlagOption (int flag, bool flagValue=true)
 
void setProperty (int tProperty, helics_time timeValue)
 
void setProperty (int intProperty, int value)
 
bool getFlagOption (int flag) const
 
helics_time getTimeProperty (int tProperty) const
 
int getIntegerProperty (int intProperty) const
 
void setSeparator (char sep)
 
void registerInterfaces (const std::string &configString)
 
helics_federate_state getCurrentMode () const
 
void enterInitializingMode ()
 
void enterInitializingModeAsync ()
 
bool isAsyncOperationCompleted () const
 
void enterInitializingModeComplete ()
 
helics_iteration_result enterExecutingMode (helics_iteration_request iterate=helics_iteration_request_no_iteration)
 
void enterExecutingModeAsync (helics_iteration_request iterate=helics_iteration_request_no_iteration)
 
helics_iteration_result enterExecutingModeComplete ()
 
void finalize ()
 
void finalizeAsync ()
 
void finalizeComplete ()
 
helics_time getCurrentTime ()
 
helics_time requestTime (helics_time time)
 
helics_time requestNextStep ()
 
helics_time requestTimeAdvance (helics_time timeDelta)
 
helics_iteration_time requestTimeIterative (helics_time time, helics_iteration_request iterate)
 
void requestTimeAsync (helics_time time)
 
void requestTimeIterativeAsync (helics_time time, helics_iteration_request iterate)
 
helics_time requestTimeComplete ()
 
helics_iteration_time requestTimeIterativeComplete ()
 
const char * getName () const
 
std::string query (const std::string &target, const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast) const
 
std::string query (const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast) const
 
void setQueryCallback (void(*queryAnswer)(const char *query, int querySize, helics_query_buffer, void *userdata), void *userdata)
 
Filter registerFilter (helics_filter_type type, const std::string &filterName=std::string())
 
CloningFilter registerCloningFilter (const std::string &deliveryEndpoint)
 
Filter registerGlobalFilter (helics_filter_type type, const std::string &filterName=std::string())
 
CloningFilter registerGlobalCloningFilter (const std::string &deliveryEndpoint)
 
Filter getFilter (const std::string &filterName)
 
Filter getFilter (int index)
 
void setGlobal (const std::string &valueName, const std::string &value)
 
void addDependency (const std::string &fedName)
 
void localError (int errorCode, const std::string &errorString)
 
void globalError (int errorCode, const std::string &errorString)
 
void logErrorMessage (const std::string &message)
 
void logWarningMessage (const std::string &message)
 
void logInfoMessage (const std::string &message)
 
void logDebugMessage (const std::string &message)
 
void logMessage (int level, const std::string &message)
 
helics_core getCore ()
 
helics_federate getObject () const
 

Friends

class helicscpp::FederateInfo
 

Additional Inherited Members

- Protected Attributes inherited from helicscpp::Federate
helics_federate fed
 underlying helics_federate object
 
bool exec_async_iterate
 indicator that the federate is in an async operation
 

Detailed Description

Class defining a ValueFederate object which interacts with publication and Inputs

Constructor & Destructor Documentation

◆ ValueFederate() [1/4]

helicscpp::ValueFederate::ValueFederate ( const std::string &  fedName,
FederateInfo fi 
)
inlineexplicit

constructor taking a federate information structure and using the default core

Parameters
fedNamethe name of the federate, can be empty to use the name from fi or an auto generated one
fia federate information structure

References helicscpp::Federate::fed, helicscpp::FederateInfo::getInfo(), helics_error_registration_failure, and helicsCreateValueFederate().

◆ ValueFederate() [2/4]

helicscpp::ValueFederate::ValueFederate ( const std::string &  configString)
inlineexplicit

constructor taking a string with the required information

Parameters
configStringcan be either a JSON file, a TOML file (with extension TOML), or a string containing JSON code

References helicscpp::Federate::fed, helics_error_registration_failure, and helicsCreateValueFederateFromConfig().

◆ ValueFederate() [3/4]

helicscpp::ValueFederate::ValueFederate ( const ValueFederate vfed)
inline

copy constructor

◆ ValueFederate() [4/4]

helicscpp::ValueFederate::ValueFederate ( )
inline

Default constructor, not meant to be used

Member Function Documentation

◆ clearUpdates()

void helicscpp::ValueFederate::clearUpdates ( )
inline

clear all the update flags from all federate inputs

References helicscpp::Federate::fed, and helicsFederateClearUpdates().

◆ getInput()

Input helicscpp::ValueFederate::getInput ( const std::string &  name)
inline

get an input by index

References helicscpp::Federate::fed, and helicsFederateGetInput().

◆ getInputCount()

int helicscpp::ValueFederate::getInputCount ( ) const
inline

get the number of inputs in this federate

References helicscpp::Federate::fed, and helicsFederateGetInputCount().

◆ getPublication() [1/2]

Publication helicscpp::ValueFederate::getPublication ( const std::string &  name)
inline

get publication by name

References helicscpp::Federate::fed, and helicsFederateGetPublication().

◆ getPublication() [2/2]

Publication helicscpp::ValueFederate::getPublication ( int  index)
inline

get a publication by index

Parameters
indexa 0 based index of the publication to retrieve
Returns
a Publication object

References helicscpp::Federate::fed, and helicsFederateGetPublicationByIndex().

◆ getPublicationCount()

int helicscpp::ValueFederate::getPublicationCount ( ) const
inline

get the number of publications in this federate

References helicscpp::Federate::fed, and helicsFederateGetPublicationCount().

◆ getSubscription()

Input helicscpp::ValueFederate::getSubscription ( int  index)
inline

get a subscription by index

References helicscpp::Federate::fed, and helicsFederateGetInputByIndex().

◆ operator=()

ValueFederate& helicscpp::ValueFederate::operator= ( const ValueFederate fedObj)
inline

◆ publishJSON()

void helicscpp::ValueFederate::publishJSON ( const std::string &  json)
inline

publish data contained in a JSON file

References helicscpp::Federate::fed, and helicsFederatePublishJSON().

◆ queryUpdates()

std::vector<helics_input> helicscpp::ValueFederate::queryUpdates ( )
inline

Get a list of all subscriptions with updates since the last call

◆ registerFromPublicationJSON()

void helicscpp::ValueFederate::registerFromPublicationJSON ( const std::string &  json)
inline

register publications from a JSON output file or string

generates interface based on the data contained in a JSON file or string

References helicscpp::Federate::fed, and helicsFederateRegisterFromPublicationJSON().

◆ registerGlobalInput() [1/2]

Input helicscpp::ValueFederate::registerGlobalInput ( const std::string &  key,
helics_data_type  type,
const std::string &  units = "" 
)
inline

register an input

call is only valid in startup mode

Parameters
keythe name of the input
typean enumeration value describing the type of the input
unitsa string defining the units of the input [optional]
Returns
an input object for use as an identifier

References helicscpp::Federate::fed, and helicsFederateRegisterGlobalInput().

◆ registerGlobalInput() [2/2]

Input helicscpp::ValueFederate::registerGlobalInput ( const std::string &  name,
const std::string &  type,
const std::string &  units = "" 
)
inline

register an input

call is only valid in startup mode

Parameters
namethe name of the input
typea string defining the type of the input
unitsa string defining the units of the input [optional]
Returns
an input object for use as an identifier

References helicscpp::Federate::fed, and helicsFederateRegisterGlobalTypeInput().

Referenced by registerIndexedInput().

◆ registerGlobalPublication() [1/2]

Publication helicscpp::ValueFederate::registerGlobalPublication ( const std::string &  key,
helics_data_type  type,
const std::string &  units = "" 
)
inline

register a publication

call is only valid in startup mode

Parameters
keythe name of the publication
typean enumeration value describing the type of the publication
unitsa string defining the units of the publication [optional]
Returns
a publication object for use as an identifier

References helicscpp::Federate::fed, and helicsFederateRegisterGlobalPublication().

◆ registerGlobalPublication() [2/2]

Publication helicscpp::ValueFederate::registerGlobalPublication ( const std::string &  name,
const std::string &  type,
const std::string &  units = "" 
)
inline

register a publication

call is only valid in startup mode

Parameters
namethe name of the publication
typea string defining the type of the publication
unitsa string defining the units of the publication [optional]
Returns
a publication object for use as an identifier

References helicscpp::Federate::fed, and helicsFederateRegisterGlobalTypePublication().

Referenced by registerIndexedPublication().

◆ registerIndexedInput() [1/2]

Input helicscpp::ValueFederate::registerIndexedInput ( const std::string &  key,
int  index1,
helics_data_type  type,
const std::string &  units = "" 
)
inline

register an input as part of an indexed structure

call is only valid in startup mode by default prepends the name with the federate name the name is registered as a global structure with the index appended

Parameters
keythe name of the input to register
index1an index associated with the input
typean enumeration value describing the type of the input
unitsthe optional units of the input
Returns
an identifier for use with this input

References registerGlobalInput().

◆ registerIndexedInput() [2/2]

Input helicscpp::ValueFederate::registerIndexedInput ( const std::string &  key,
int  index1,
int  index2,
helics_data_type  type,
const std::string &  units = std::string() 
)
inline

register an input as part of a 2 dimensional indexed structure

call is only valid in startup mode by default prepends the name with the federate name the name is registered as a global structure with the indices appended

Parameters
keythe base name of the input
index1an index associated with the input
index2a second index
typean enumeration value describing the type of the input
unitsthe optional units of the input
Returns
an identifier for use with this input

References registerGlobalInput().

◆ registerIndexedPublication() [1/2]

Publication helicscpp::ValueFederate::registerIndexedPublication ( const std::string &  key,
int  index1,
helics_data_type  type,
const std::string &  units = "" 
)
inline

register a publication as part of an indexed structure

call is only valid in startup mode by default prepends the name with the federate name the name is registered as a global structure with the index appended

Parameters
keythe name of the publication to register
index1an index associated with the publication
typean enumeration value describing the type of the publication
unitsthe optional units of the publication
Returns
an identifier for use with this publication

References registerGlobalPublication().

Referenced by registerPublicationIndexed().

◆ registerIndexedPublication() [2/2]

Publication helicscpp::ValueFederate::registerIndexedPublication ( const std::string &  key,
int  index1,
int  index2,
helics_data_type  type,
const std::string &  units = std::string() 
)
inline

register a publication as part of a 2 dimensional indexed structure

call is only valid in startup mode by default prepends the name with the federate name the name is registered as a global structure with the indices appended

Parameters
keythe base name of the publication
index1an index associated with the publication
index2a second index
typean enumeration value describing the type of the publication
unitsthe optional units of the publication
Returns
an identifier for use with this publication

References registerGlobalPublication().

◆ registerIndexedSubscription() [1/2]

Input helicscpp::ValueFederate::registerIndexedSubscription ( const std::string &  name,
int  index1,
const std::string &  units = "" 
)
inline

register a !D indexed subscription

Parameters
namethe base name of the publication to subscribe to
index1the first index of the value to subscribe to
unitsa string containing the requested units of the subscription output
Returns
an input object getting the requested value

References registerSubscription().

Referenced by registerSubscriptionIndexed().

◆ registerIndexedSubscription() [2/2]

Input helicscpp::ValueFederate::registerIndexedSubscription ( const std::string &  name,
int  index1,
int  index2,
const std::string &  units = "" 
)
inline

register a 2D indexed subscription

Parameters
namethe base name of the publication to subscribe to
index1the first index of the value to subscribe to
index2the second index of the value to subscribe to
unitsa string containing the requested units of the subscription output
Returns
an input object getting the requested value

References registerSubscription().

◆ registerInput() [1/2]

Input helicscpp::ValueFederate::registerInput ( const std::string &  name,
const std::string &  type,
const std::string &  units = "" 
)
inline

register an input

call is only valid in startup mode

Parameters
namethe name of the input
typea string defining the type of the input
unitsa string defining the units of the input [optional]
Returns
an input id object for use as an identifier

References helicscpp::Federate::fed, and helicsFederateRegisterTypeInput().

◆ registerInput() [2/2]

Input helicscpp::ValueFederate::registerInput ( const std::string &  name,
helics_data_type  type,
const std::string &  units = "" 
)
inline

register an input

call is only valid in startup mode by default prepends the name with the federate name

Parameters
namethe name of the input
typethe type of input to register
unitsthe optional units of the input
Returns
an identifier for use with this input

References helicscpp::Federate::fed, and helicsFederateRegisterPublication().

◆ registerPublication() [1/2]

Publication helicscpp::ValueFederate::registerPublication ( const std::string &  name,
const std::string &  type,
const std::string &  units = "" 
)
inline

Methods to register publications register a publication

call is only valid in startup mode

Parameters
namethe name of the publication
typea string defining the type of the publication
unitsa string defining the units of the publication [optional]
Returns
a publication id object for use as an identifier

References helicscpp::Federate::fed, and helicsFederateRegisterTypePublication().

◆ registerPublication() [2/2]

Publication helicscpp::ValueFederate::registerPublication ( const std::string &  name,
helics_data_type  type,
const std::string &  units = "" 
)
inline

register a publication

call is only valid in startup mode by default prepends the name with the federate name

Parameters
namethe name of the publication
typethe type of publication to register
unitsthe optional units of the publication
Returns
an identifier for use with this publication

References helicscpp::Federate::fed, and helicsFederateRegisterPublication().

◆ registerPublicationIndexed() [1/2]

Publication helicscpp::ValueFederate::registerPublicationIndexed ( const std::string &  key,
int  index1,
helics_data_type  type,
const std::string &  units = "" 
)
inline

register a publication as part of an indexed structure

call is only valid in startup mode by default prepends the name with the federate name the name is registered as a global structure with the index appended

Parameters
keythe name of the publication to register
index1an index associated with the publication
typean enumeration value describing the type of the publication
unitsthe optional units of the publication
Returns
an identifier for use with this publication

References registerIndexedPublication().

◆ registerPublicationIndexed() [2/2]

Publication helicscpp::ValueFederate::registerPublicationIndexed ( const std::string &  key,
int  index1,
int  index2,
helics_data_type  type,
const std::string &  units = std::string() 
)
inline

register a publication as part of a 2 dimensional indexed structure

call is only valid in startup mode by default prepends the name with the federate name the name is registered as a global structure with the indices appended

Parameters
keythe base name of the publication
index1an index associated with the publication
index2a second index
typean enumeration value describing the type of the publication
unitsthe optional units of the publication
Returns
an identifier for use with this publication

References registerIndexedPublication().

◆ registerSubscription()

Input helicscpp::ValueFederate::registerSubscription ( const std::string &  name,
const std::string &  units = std::string() 
)
inline

Methods to register subscriptions

References helicscpp::Federate::fed, and helicsFederateRegisterSubscription().

Referenced by registerIndexedSubscription().

◆ registerSubscriptionIndexed() [1/2]

Input helicscpp::ValueFederate::registerSubscriptionIndexed ( const std::string &  name,
int  index1,
const std::string &  units = "" 
)
inline

register a !D indexed subscription

Parameters
namethe base name of the publication to subscribe to
index1the first index of the value to subscribe to
unitsa string containing the requested units of the subscription output
Returns
an input object getting the requested value

References registerIndexedSubscription().

◆ registerSubscriptionIndexed() [2/2]

Input helicscpp::ValueFederate::registerSubscriptionIndexed ( const std::string &  name,
int  index1,
int  index2,
const std::string &  units = "" 
)
inline

register a 2D indexed subscription

Parameters
namethe base name of the publication to subscribe to
index1the first index of the value to subscribe to
index2the second index of the value to subscribe to
unitsa string containing the requested units of the subscription output
Returns
an input object getting the requested value

References registerIndexedSubscription().


The documentation for this class was generated from the following file: