helics  3.5.2
Public Member Functions | Protected Member Functions | List of all members
helics::CombinationFederate Class Reference

#include <CombinationFederate.hpp>

+ Inheritance diagram for helics::CombinationFederate:

Public Member Functions

 CombinationFederate ()
 
 CombinationFederate (std::string_view fedName, const FederateInfo &fedInfo)
 
 CombinationFederate (std::string_view fedName, const std::shared_ptr< Core > &core, const FederateInfo &fedInfo=FederateInfo{})
 
 CombinationFederate (std::string_view fedName, CoreApp &core, const FederateInfo &fedInfo=FederateInfo{})
 
 CombinationFederate (std::string_view fedName, const std::string &configString)
 
 CombinationFederate (const std::string &configString)
 
 CombinationFederate (CombinationFederate &&fed) noexcept
 
virtual ~CombinationFederate ()
 
CombinationFederateoperator= (CombinationFederate &&fed) noexcept
 
 CombinationFederate (const CombinationFederate &fed)=delete
 
CombinationFederateoperator= (const CombinationFederate &fed)=delete
 
virtual void setFlagOption (int flagIndex, bool flagValue=true) override
 
virtual void disconnect () override
 
virtual void registerInterfaces (const std::string &configString) override
 
- Public Member Functions inherited from helics::ValueFederate
 ValueFederate (std::string_view fedName, const FederateInfo &fedInfo)
 
 ValueFederate (std::string_view fedName, const std::shared_ptr< Core > &core, const FederateInfo &fedInfo=FederateInfo{})
 
 ValueFederate (std::string_view fedName, CoreApp &core, const FederateInfo &fedInfo=FederateInfo{})
 
 ValueFederate (const std::string &configString)
 
 ValueFederate (std::string_view fedName, const std::string &configString)
 
 ValueFederate ()
 
 ValueFederate (bool res)
 
 ValueFederate (const char *configString)
 
 ValueFederate (const ValueFederate &fed)=delete
 
 ValueFederate (ValueFederate &&fed) noexcept
 
virtual ~ValueFederate ()
 
ValueFederateoperator= (ValueFederate &&fed) noexcept
 
ValueFederateoperator= (const ValueFederate &fed)=delete
 
PublicationregisterPublication (std::string_view name, std::string_view type, std::string_view units=std::string_view{})
 
template<typename X >
PublicationregisterPublication (std::string_view name, std::string_view units=std::string_view{})
 
PublicationregisterGlobalPublication (std::string_view name, std::string_view type, std::string_view units=std::string_view{})
 
template<typename X >
PublicationregisterGlobalPublication (std::string_view name, std::string_view units=std::string_view{})
 
template<typename X >
PublicationregisterIndexedPublication (std::string_view name, int index1, std::string_view units=std::string_view{})
 
template<typename X >
PublicationregisterIndexedPublication (std::string_view name, int index1, int index2, std::string_view units=std::string_view{})
 
InputregisterInput (std::string_view name, std::string_view type, std::string_view units=std::string_view{})
 
InputregisterGlobalInput (std::string_view name, std::string_view type, std::string_view units=std::string_view{})
 
template<typename X >
InputregisterInput (std::string_view name, std::string_view units=std::string_view{})
 
template<typename X >
InputregisterGlobalInput (std::string_view name, std::string_view units=std::string_view{})
 
template<typename X >
InputregisterIndexedInput (std::string_view name, int index1, std::string_view units=std::string_view())
 
template<typename X >
InputregisterIndexedInput (std::string_view name, int index1, int index2, std::string_view units=std::string_view())
 
InputregisterSubscription (std::string_view target, std::string_view units=std::string_view{})
 
InputregisterIndexedSubscription (std::string_view target, int index1, std::string_view units=std::string_view{})
 
InputregisterIndexedSubscription (std::string_view target, int index1, int index2, std::string_view units=std::string_view{})
 
void addAlias (const Input &inp, std::string_view shortcutName)
 
void addAlias (const Publication &pub, std::string_view shortcutName)
 
void setDefaultValue (const Input &inp, data_view block)
 
void registerValueInterfaces (const std::string &configString)
 
data_view getBytes (const Input &inp)
 
bool forceCoreUpdate (Input &inp)
 
void publishBytes (const Publication &pub, data_view block)
 
void publishBytes (const Publication &pub, const char *data, size_t data_size)
 
void registerFromPublicationJSON (const std::string &jsonString)
 
void publishJSON (const std::string &jsonString)
 
void addTarget (const Publication &pub, std::string_view target)
 
void addTarget (const Input &inp, std::string_view target)
 
void removeTarget (const Publication &pub, std::string_view target)
 
void removeTarget (const Input &inp, std::string_view target)
 
template<class iType >
void addIndexedTarget (const iType &iObject, std::string_view target, int index1)
 
template<class iType >
void addIndexedTarget (const iType &iObject, std::string_view target, int index1, int index2)
 
bool isUpdated (const Input &inp) const
 
Time getLastUpdateTime (const Input &inp) const
 
void clearUpdates ()
 
void clearUpdate (const Input &inp)
 
std::vector< int > queryUpdates ()
 
const std::string & getTarget (const Input &inp) const
 
const InputgetInput (std::string_view name) const
 
InputgetInput (std::string_view name)
 
const InputgetInput (int index) const
 
InputgetInput (int index)
 
const InputgetInput (std::string_view name, int index1) const
 
const InputgetInput (std::string_view name, int index1, int index2) const
 
const InputgetSubscription (std::string_view target) const
 
InputgetSubscription (std::string_view target)
 
const InputgetInputByTarget (std::string_view target) const
 
InputgetInputByTarget (std::string_view target)
 
PublicationgetPublication (std::string_view name)
 
const PublicationgetPublication (std::string_view name) const
 
PublicationgetPublication (int index)
 
const PublicationgetPublication (int index) const
 
const PublicationgetPublication (std::string_view name, int index1) const
 
const PublicationgetPublication (std::string_view name, int index1, int index2) const
 
void setInputNotificationCallback (std::function< void(Input &, Time)> callback)
 
void setInputNotificationCallback (Input &inp, std::function< void(Input &, Time)> callback)
 
int getPublicationCount () const
 
int getInputCount () const
 
void addAlias (std::string_view interfaceName, std::string_view alias)
 
- Public Member Functions inherited from helics::Federate
 Federate (std::string_view fedname, const FederateInfo &fedInfo)
 
 Federate (std::string_view fedname, const std::shared_ptr< Core > &core, const FederateInfo &fedInfo=FederateInfo{})
 
 Federate (std::string_view fedname, CoreApp &core, const FederateInfo &fedInfo=FederateInfo{})
 
 Federate (const std::string &configString)
 
 Federate (std::string_view fedname, const std::string &configString)
 
 Federate () noexcept
 
 Federate (Federate &&fed) noexcept
 
 Federate (const Federate &fed)=delete
 
virtual ~Federate ()
 
Federateoperator= (Federate &&fed) noexcept
 
Federateoperator= (const Federate &fed)=delete
 
void enterInitializingMode ()
 
void enterInitializingModeAsync ()
 
bool isAsyncOperationCompleted () const
 
void enterInitializingModeComplete ()
 
void enterInitializingModeIterative ()
 
void enterInitializingModeIterativeAsync ()
 
void enterInitializingModeIterativeComplete ()
 
IterationResult enterExecutingMode (IterationRequest iterate=IterationRequest::NO_ITERATIONS)
 
void enterExecutingModeAsync (IterationRequest iterate=IterationRequest::NO_ITERATIONS)
 
IterationResult enterExecutingModeComplete ()
 
void finalize ()
 
void finalizeAsync ()
 
void finalizeComplete ()
 
void processCommunication (std::chrono::milliseconds period=std::chrono::milliseconds(0))
 
void localError (int errorcode, std::string_view message)
 
void globalError (int errorcode, std::string_view message)
 
void localError (int errorcode)
 
void globalError (int errorcode)
 
void setSeparator (char separator)
 
Time requestTime (Time nextInternalTimeStep)
 
Time requestNextStep ()
 
Time requestTimeAdvance (Time timeDelta)
 
iteration_time requestTimeIterative (Time nextInternalTimeStep, IterationRequest iterate)
 
void requestTimeAsync (Time nextInternalTimeStep)
 
void requestTimeIterativeAsync (Time nextInternalTimeStep, IterationRequest iterate)
 
Time requestTimeComplete ()
 
iteration_time requestTimeIterativeComplete ()
 
void setTag (std::string_view tag, std::string_view value)
 
const std::string & getTag (std::string_view tag) const
 
virtual void setProperty (int32_t option, double timeValue)
 
virtual void setProperty (int32_t option, Time timeValue)
 
virtual void setProperty (int32_t option, int32_t optionValue)
 
virtual Time getTimeProperty (int32_t option) const
 
virtual bool getFlagOption (int flag) const
 
virtual int getIntegerProperty (int32_t option) const
 
void setLoggingCallback (const std::function< void(int, std::string_view, std::string_view)> &logFunction)
 
void setInitializingEntryCallback (std::function< void(bool)> callback)
 
void setExecutingEntryCallback (std::function< void()> callback)
 
void setTimeRequestEntryCallback (std::function< void(Time, Time, bool)> callback)
 
void setTimeUpdateCallback (std::function< void(Time, bool)> callback)
 
void setModeUpdateCallback (std::function< void(Modes, Modes)> callback)
 
void setTimeRequestReturnCallback (std::function< void(Time, bool)> callback)
 
void setCosimulationTerminatedCallback (std::function< void()> callback)
 
void setErrorHandlerCallback (std::function< void(int, std::string_view)> errorHandlerCallback)
 
std::string query (std::string_view target, std::string_view queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)
 
std::string query (std::string_view queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)
 
QueryId queryAsync (std::string_view target, std::string_view queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)
 
QueryId queryAsync (std::string_view queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)
 
std::string queryComplete (QueryId queryIndex)
 
bool isQueryCompleted (QueryId queryIndex) const
 
void setQueryCallback (const std::function< std::string(std::string_view)> &queryFunction)
 
void setGlobal (std::string_view valueName, std::string_view value)
 
void addAlias (std::string_view interfaceName, std::string_view alias)
 
void sendCommand (std::string_view target, std::string_view commandStr, HelicsSequencingModes mode=HelicsSequencingModes::HELICS_SEQUENCING_MODE_FAST)
 
std::pair< std::string, std::string > getCommand ()
 
std::pair< std::string, std::string > waitCommand ()
 
void addDependency (std::string_view fedName)
 
FilterregisterGlobalFilter (std::string_view filterName, std::string_view inputType=std::string_view{}, std::string_view outputType=std::string_view{})
 
CloningFilterregisterGlobalCloningFilter (std::string_view filterName, std::string_view inputType=std::string_view{}, std::string_view outputType=std::string_view{})
 
FilterregisterFilter (std::string_view filterName, std::string_view inputType=std::string_view{}, std::string_view outputType=std::string_view{})
 
CloningFilterregisterCloningFilter (std::string_view filterName, std::string_view inputType=std::string_view{}, std::string_view outputType=std::string_view{})
 
FilterregisterFilter ()
 
TranslatorregisterGlobalTranslator (std::int32_t translatorType, std::string_view translatorName, std::string_view endpointType=std::string_view{}, std::string_view units=std::string_view{})
 
TranslatorregisterTranslator (std::int32_t translatorType, std::string_view translatorName, std::string_view endpointType=std::string_view{}, std::string_view units=std::string_view{})
 
TranslatorregisterGlobalTranslator (std::string_view translatorName, std::string_view endpointType=std::string_view{}, std::string_view units=std::string_view{})
 
TranslatorregisterTranslator (std::string_view translatorName, std::string_view endpointType=std::string_view{}, std::string_view units=std::string_view{})
 
TranslatorregisterTranslator ()
 
CloningFilterregisterCloningFilter ()
 
const FiltergetFilter (std::string_view filterName) const
 
const FiltergetFilter (int index) const
 
FiltergetFilter (std::string_view filterName)
 
FiltergetFilter (int index)
 
void setFilterOperator (const Filter &filt, std::shared_ptr< FilterOperator > filtOp)
 register a operator for the specified filter More...
 
int getFilterCount () const
 
const TranslatorgetTranslator (std::string_view translatorName) const
 
const TranslatorgetTranslator (int index) const
 
TranslatorgetTranslator (std::string_view translatorName)
 
TranslatorgetTranslator (int index)
 
void setTranslatorOperator (const Translator &trans, std::shared_ptr< TranslatorOperator > transOp)
 register an operator for the specified translator More...
 
int getTranslatorCount () const
 
const std::string & getConfigFile () const
 
void registerConnectorInterfaces (const std::string &configString)
 
void registerFilterInterfaces (const std::string &configString)
 
auto getID () const noexcept
 
Modes getCurrentMode () const noexcept
 
Time getCurrentTime () const noexcept
 
const std::string & getName () const
 
const std::shared_ptr< Core > & getCorePointer ()
 
void logMessage (int level, std::string_view message) const
 
void logErrorMessage (std::string_view message) const
 
void logWarningMessage (std::string_view message) const
 
void logInfoMessage (std::string_view message) const
 
void logDebugMessage (std::string_view message) const
 
void completeOperation ()
 
- Public Member Functions inherited from helics::MessageFederate
 MessageFederate (std::string_view fedName, const FederateInfo &fedInfo)
 
 MessageFederate (std::string_view fedName, const std::shared_ptr< Core > &core, const FederateInfo &fedInfo=FederateInfo{})
 
 MessageFederate (std::string_view fedName, CoreApp &core, const FederateInfo &fedInfo=FederateInfo{})
 
 MessageFederate (std::string_view name, const std::string &configString)
 
 MessageFederate (const std::string &configString)
 
 MessageFederate (const char *configString)
 
 MessageFederate (MessageFederate &&mFed) noexcept
 
 MessageFederate (const MessageFederate &mFed)=delete
 
 MessageFederate ()
 
 MessageFederate (bool res)
 
virtual ~MessageFederate ()
 
MessageFederateoperator= (MessageFederate &&mFed) noexcept
 
MessageFederateoperator= (const MessageFederate &mFed)=delete
 
EndpointregisterEndpoint (std::string_view eptName=std::string_view(), std::string_view type=std::string_view())
 
EndpointregisterTargetedEndpoint (std::string_view eptName=std::string_view(), std::string_view type=std::string_view())
 
EndpointregisterGlobalEndpoint (std::string_view eptName, std::string_view type=std::string_view())
 
EndpointregisterGlobalTargetedEndpoint (std::string_view eptName, std::string_view type=std::string_view())
 
EndpointregisterIndexedEndpoint (std::string_view eptName, int index1, std::string_view type=std::string_view())
 
EndpointregisterDataSink (std::string_view sinkName=std::string_view())
 
void registerMessageInterfaces (const std::string &configString)
 
void subscribe (const Endpoint &ept, std::string_view key)
 
bool hasMessage () const
 
bool hasMessage (const Endpoint &ept) const
 
uint64_t pendingMessageCount (const Endpoint &ept) const
 
uint64_t pendingMessageCount () const
 
std::unique_ptr< MessagegetMessage (const Endpoint &ept)
 
std::unique_ptr< MessagegetMessage ()
 
EndpointgetEndpoint (std::string_view name) const
 
EndpointgetEndpoint (int index) const
 
EndpointgetDataSink (std::string_view name) const
 
void setMessageNotificationCallback (const std::function< void(Endpoint &, Time)> &callback)
 
void setMessageNotificationCallback (const Endpoint &ept, const std::function< void(Endpoint &, Time)> &callback)
 
int getEndpointCount () const
 

Protected Member Functions

virtual void updateTime (Time newTime, Time oldTime) override
 
virtual void startupToInitializeStateTransition () override
 
virtual void initializeToExecuteStateTransition (iteration_time result) override
 
virtual std::string localQuery (std::string_view queryStr) const override
 
- Protected Member Functions inherited from helics::Federate
void enteringInitializingMode (IterationResult iterating)
 
void enteringExecutingMode (iteration_time res)
 
void finalizeOperations ()
 
void preTimeRequestOperations (Time nextStep, bool iterating)
 
void postTimeRequestOperations (Time newTime, bool iterating)
 
virtual void disconnectTransition ()
 
std::string localNameGenerator (std::string_view addition) const
 
void handleError (int errorCode, std::string_view errorString, bool noThrow)
 
void setAsyncCheck (std::function< bool()> asyncCheck)
 

Additional Inherited Members

- Public Types inherited from helics::Federate
enum class  Modes : char {
  STARTUP = 0 , INITIALIZING = 1 , EXECUTING = 2 , FINALIZE = 3 ,
  ERROR_STATE = 4 , PENDING_INIT = 5 , PENDING_EXEC = 6 , PENDING_TIME = 7 ,
  PENDING_ITERATIVE_TIME = 8 , PENDING_FINALIZE = 9 , FINISHED = 10 , PENDING_ITERATIVE_INIT = 12
}
 
- Protected Attributes inherited from helics::Federate
std::atomic< ModescurrentMode {Modes::STARTUP}
 the current state of the simulation
 
char nameSegmentSeparator = '/'
 the separator between automatically prependend names
 
bool strictConfigChecking {true}
 
bool useJsonSerialization {false}
 
bool observerMode {false}
 
bool retriggerTimeRequest {false}
 
bool singleThreadFederate {false}
 
bool hasPotentialInterfaces {false}
 
std::shared_ptr< CorecoreObject
 reference to the core simulation API
 
Time mCurrentTime = Time::minVal()
 the current simulation time
 
Time mStopTime = Time::maxVal()
 the stopping time for the federate
 
std::string configFile
 any config file used
 

Detailed Description

class defining a federate that can use both the value and message interfaces

Constructor & Destructor Documentation

◆ CombinationFederate() [1/8]

helics::CombinationFederate::CombinationFederate ( )
default

default constructor

◆ CombinationFederate() [2/8]

helics::CombinationFederate::CombinationFederate ( std::string_view  fedName,
const FederateInfo fedInfo 
)
explicit

constructor taking a federate information structure and using the default core

Parameters
fedNamethe name of the federate, may be left empty to use a default or one found in fedInfo
fedInfoa federate information structure

◆ CombinationFederate() [3/8]

helics::CombinationFederate::CombinationFederate ( std::string_view  fedName,
const std::shared_ptr< Core > &  core,
const FederateInfo fedInfo = FederateInfo{} 
)

constructor taking a federate information structure and using the given core

Parameters
fedNamethe name of the federate, may be left empty to use a default or one found in fedInfo
corea pointer to core object which the federate can join
fedInfoa federate information structure

◆ CombinationFederate() [4/8]

helics::CombinationFederate::CombinationFederate ( std::string_view  fedName,
CoreApp core,
const FederateInfo fedInfo = FederateInfo{} 
)

constructor taking a federate information structure and using the given CoreApp

Parameters
fedNamethe name of the federate, may be left empty to use a default or one found in fedInfo
corea CoreApp object representing the core to connect to
fedInfoa federate information structure

◆ CombinationFederate() [5/8]

helics::CombinationFederate::CombinationFederate ( std::string_view  fedName,
const std::string &  configString 
)

constructor taking a federate name and a file with the required information

Parameters
fedNamethe name of the federate, can be empty to use the name from the configString
configStringcan be either a JSON file a TOML file (with extension TOML) or a string containing JSON code or a string with command line arguments

◆ CombinationFederate() [6/8]

helics::CombinationFederate::CombinationFederate ( const std::string &  configString)
explicit

constructor taking a file with the required information

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

◆ CombinationFederate() [7/8]

helics::CombinationFederate::CombinationFederate ( CombinationFederate &&  fed)
defaultnoexcept

move construction

◆ ~CombinationFederate()

helics::CombinationFederate::~CombinationFederate ( )
virtualdefault

destructor

◆ CombinationFederate() [8/8]

helics::CombinationFederate::CombinationFederate ( const CombinationFederate fed)
delete

delete the copy constructor

Member Function Documentation

◆ disconnect()

void helics::CombinationFederate::disconnect ( )
overridevirtual

disconnect a simulation from the core (will also call finalize before disconnecting if necessary)

Reimplemented from helics::MessageFederate.

References helics::MessageFederate::disconnect(), and helics::ValueFederate::disconnect().

◆ initializeToExecuteStateTransition()

void helics::CombinationFederate::initializeToExecuteStateTransition ( iteration_time  iterate)
overrideprotectedvirtual

function to deal with any operations that need to occur on the transition from startup to initialize

Reimplemented from helics::MessageFederate.

References helics::MessageFederate::initializeToExecuteStateTransition(), and helics::ValueFederate::initializeToExecuteStateTransition().

◆ localQuery()

std::string helics::CombinationFederate::localQuery ( std::string_view  queryStr) const
overrideprotectedvirtual

function to generate results for a local Query

should return an empty string if the query is not recognized

Reimplemented from helics::MessageFederate.

References helics::MessageFederate::localQuery(), and helics::ValueFederate::localQuery().

◆ operator=() [1/2]

CombinationFederate & helics::CombinationFederate::operator= ( CombinationFederate &&  fed)
defaultnoexcept

move assignment

◆ operator=() [2/2]

CombinationFederate& helics::CombinationFederate::operator= ( const CombinationFederate fed)
delete

copy assignment deleted

◆ registerInterfaces()

void helics::CombinationFederate::registerInterfaces ( const std::string &  configString)
overridevirtual

register a set of interfaces defined in a file

call is only valid in startup mode

Parameters
configStringthe location of the file or config String to load to generate the interfaces

Reimplemented from helics::MessageFederate.

References helics::Federate::registerFilterInterfaces(), helics::MessageFederate::registerMessageInterfaces(), and helics::ValueFederate::registerValueInterfaces().

◆ setFlagOption()

void helics::CombinationFederate::setFlagOption ( int  flag,
bool  flagValue = true 
)
overridevirtual

set a flag for the federate

Parameters
flagan index into the flag /ref flag-definitions.h
flagValuethe value of the flag defaults to true

Reimplemented from helics::ValueFederate.

References helics::ValueFederate::setFlagOption().

◆ startupToInitializeStateTransition()

void helics::CombinationFederate::startupToInitializeStateTransition ( )
overrideprotectedvirtual

function to deal with any operations that need to occur on the transition from startup to initialize

Reimplemented from helics::MessageFederate.

References helics::MessageFederate::startupToInitializeStateTransition(), and helics::ValueFederate::startupToInitializeStateTransition().

◆ updateTime()

void helics::CombinationFederate::updateTime ( Time  newTime,
Time  oldTime 
)
overrideprotectedvirtual

function to deal with any operations that need to occur on a time update

Reimplemented from helics::MessageFederate.

References helics::MessageFederate::updateTime(), and helics::ValueFederate::updateTime().


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