helics 3.7.0
Loading...
Searching...
No Matches
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)
 
int getFilterCount () const
 
const TranslatorgetTranslator (std::string_view translatorName) const
 
const TranslatorgetTranslator (int index) const
 
TranslatorgetTranslator (std::string_view translatorName)
 
TranslatorgetTranslator (int index)
 
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
}
 
- Static Public Member Functions inherited from helics::Federate
static void setFilterOperator (Filter &filt, std::shared_ptr< FilterOperator > filtOp)
 register a operator for the specified filter
 
static void setTranslatorOperator (Translator &trans, std::shared_ptr< TranslatorOperator > transOp)
 register an operator for the specified translator
 
- 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::ValueFederate.

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::ValueFederate.

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::ValueFederate.

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 to add an TOML files must have extension .toml or .TOML

Parameters
configStringthe location of the file(JSON or TOML) or JSON String to load to generate the interfaces

Reimplemented from helics::ValueFederate.

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::ValueFederate.

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::ValueFederate.

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


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