helics  3.0.1
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 (const std::string &fedName, const FederateInfo &fi)
 
 CombinationFederate (const std::string &fedName, const std::shared_ptr< Core > &core, const FederateInfo &fi=FederateInfo{})
 
 CombinationFederate (const std::string &fedName, CoreApp &core, const FederateInfo &fi=FederateInfo{})
 
 CombinationFederate (const std::string &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 (const std::string &fedName, const FederateInfo &fi)
 
 ValueFederate (const std::string &fedName, const std::shared_ptr< Core > &core, const FederateInfo &fi=FederateInfo{})
 
 ValueFederate (const std::string &fedName, CoreApp &core, const FederateInfo &fi=FederateInfo{})
 
 ValueFederate (const std::string &configString)
 
 ValueFederate (const std::string &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 (const std::string &name, const std::string &type, const std::string &units=std::string())
 
template<typename X >
PublicationregisterPublication (const std::string &name, const std::string &units=std::string())
 
PublicationregisterGlobalPublication (const std::string &name, const std::string &type, const std::string &units=std::string())
 
template<typename X >
PublicationregisterGlobalPublication (const std::string &name, const std::string &units=std::string())
 
template<typename X >
PublicationregisterIndexedPublication (const std::string &name, int index1, const std::string &units=std::string())
 
template<typename X >
PublicationregisterIndexedPublication (const std::string &name, int index1, int index2, const std::string &units=std::string())
 
InputregisterInput (const std::string &name, const std::string &type, const std::string &units=std::string())
 
InputregisterGlobalInput (const std::string &name, const std::string &type, const std::string &units=std::string())
 
template<typename X >
InputregisterInput (const std::string &name, const std::string &units=std::string())
 
template<typename X >
InputregisterGlobalInput (const std::string &name, const std::string &units=std::string())
 
template<typename X >
InputregisterIndexedInput (const std::string &name, int index1, const std::string &units=std::string())
 
template<typename X >
InputregisterIndexedInput (const std::string &name, int index1, int index2, const std::string &units=std::string())
 
InputregisterSubscription (const std::string &target, const std::string &units=std::string())
 
InputregisterIndexedSubscription (const std::string &target, int index1, const std::string &units=std::string())
 
InputregisterIndexedSubscription (const std::string &target, int index1, int index2, const std::string &units=std::string())
 
void addAlias (const Input &inp, const std::string &shortcutName)
 
void addAlias (const Publication &pub, const std::string &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, const std::string &target)
 
void addTarget (const Input &inp, const std::string &target)
 
void removeTarget (const Publication &pub, const std::string &target)
 
void removeTarget (const Input &inp, const std::string &target)
 
template<class iType >
void addIndexedTarget (const iType &iObject, const std::string &target, int index1)
 
template<class iType >
void addIndexedTarget (const iType &iObject, const std::string &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 (const std::string &name) const
 
InputgetInput (const std::string &name)
 
const InputgetInput (int index) const
 
InputgetInput (int index)
 
const InputgetInput (const std::string &name, int index1) const
 
const InputgetInput (const std::string &name, int index1, int index2) const
 
const InputgetSubscription (const std::string &target) const
 
InputgetSubscription (const std::string &target)
 
PublicationgetPublication (const std::string &name)
 
const PublicationgetPublication (const std::string &name) const
 
PublicationgetPublication (int index)
 
const PublicationgetPublication (int index) const
 
const PublicationgetPublication (const std::string &name, int index1) const
 
const PublicationgetPublication (const std::string &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
 
- Public Member Functions inherited from helics::Federate
 Federate (const std::string &fedname, const FederateInfo &fi)
 
 Federate (const std::string &fedname, const std::shared_ptr< Core > &core, const FederateInfo &fi=FederateInfo{})
 
 Federate (const std::string &fedname, CoreApp &core, const FederateInfo &fi=FederateInfo{})
 
 Federate (const std::string &configString)
 
 Federate (const std::string &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 ()
 
IterationResult enterExecutingMode (IterationRequest iterate=IterationRequest::NO_ITERATIONS)
 
void enterExecutingModeAsync (IterationRequest iterate=IterationRequest::NO_ITERATIONS)
 
IterationResult enterExecutingModeComplete ()
 
void finalize ()
 
void finalizeAsync ()
 
void finalizeComplete ()
 
void localError (int errorcode, const std::string &message)
 
void globalError (int errorcode, const std::string &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 (const std::string &tag, const std::string &value)
 
const std::string & getTag (const std::string &tag) const
 
void setProperty (int32_t option, double timeValue)
 
void setProperty (int32_t option, Time timeValue)
 
void setProperty (int32_t option, int32_t optionValue)
 
Time getTimeProperty (int32_t option) const
 
virtual bool getFlagOption (int flag) const
 
int getIntegerProperty (int32_t option) const
 
void setLoggingCallback (const std::function< void(int, std::string_view, std::string_view)> &logFunction)
 
std::string query (const std::string &target, const std::string &queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)
 
std::string query (const std::string &queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)
 
QueryId queryAsync (const std::string &target, const std::string &queryStr, HelicsSequencingModes mode=HELICS_SEQUENCING_MODE_FAST)
 
QueryId queryAsync (const std::string &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 (const std::string &valueName, const std::string &value)
 
void sendCommand (const std::string &target, const std::string &commandStr, HelicsSequencingModes mode=HelicsSequencingModes::HELICS_SEQUENCING_MODE_FAST)
 
std::pair< std::string, std::string > getCommand ()
 
std::pair< std::string, std::string > waitCommand ()
 
void addDependency (const std::string &fedName)
 
FilterregisterGlobalFilter (const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
 
CloningFilterregisterGlobalCloningFilter (const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
 
FilterregisterFilter (const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
 
CloningFilterregisterCloningFilter (const std::string &filterName, const std::string &inputType=std::string(), const std::string &outputType=std::string())
 
FilterregisterFilter ()
 
CloningFilterregisterCloningFilter ()
 
const FiltergetFilter (const std::string &filterName) const
 
const FiltergetFilter (int index) const
 
FiltergetFilter (const std::string &filterName)
 
FiltergetFilter (int index)
 
void setFilterOperator (const Filter &filt, std::shared_ptr< FilterOperator > op)
 register a operator for the specified filter More...
 
int getFilterCount () const
 
void registerFilterInterfaces (const std::string &configString)
 
auto getID () const noexcept
 
Modes getCurrentMode () const
 
Time getCurrentTime () const
 
const std::string & getName () const
 
const std::shared_ptr< Core > & getCorePointer ()
 
int filterCount () const
 
void logMessage (int level, const std::string &message) const
 
void logErrorMessage (const std::string &message) const
 
void logWarningMessage (const std::string &message) const
 
void logInfoMessage (const std::string &message) const
 
void logDebugMessage (const std::string &message) const
 
void completeOperation ()
 
- Public Member Functions inherited from helics::MessageFederate
 MessageFederate (const std::string &fedName, const FederateInfo &fi)
 
 MessageFederate (const std::string &fedName, const std::shared_ptr< Core > &core, const FederateInfo &fi=FederateInfo{})
 
 MessageFederate (const std::string &fedName, CoreApp &core, const FederateInfo &fi=FederateInfo{})
 
 MessageFederate (const std::string &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 (const std::string &eptName=std::string(), const std::string &type=std::string())
 
EndpointregisterTargetedEndpoint (const std::string &eptName=std::string(), const std::string &type=std::string())
 
EndpointregisterGlobalEndpoint (const std::string &eptName, const std::string &type=std::string())
 
EndpointregisterGlobalTargetedEndpoint (const std::string &eptName, const std::string &type=std::string())
 
EndpointregisterIndexedEndpoint (const std::string &eptName, int index1, const std::string &type=std::string())
 
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 (const std::string &name) const
 
EndpointgetEndpoint (int index) 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 (IterationResult result) override
 
virtual std::string localQuery (const std::string &queryStr) const override
 
- Protected Member Functions inherited from helics::Federate
virtual void disconnectTransition ()
 

Additional Inherited Members

- Public Types inherited from helics::Federate
enum  Modes : char {
  Modes::STARTUP = 0, Modes::INITIALIZING = 1, Modes::EXECUTING = 2, Modes::FINALIZE = 3,
  Modes::ERROR_STATE = 4, Modes::PENDING_INIT = 5, Modes::PENDING_EXEC = 6, Modes::PENDING_TIME = 7,
  Modes::PENDING_ITERATIVE_TIME = 8, Modes::PENDING_FINALIZE = 9, Modes::FINISHED = 10
}
 
- 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}
 
std::shared_ptr< CorecoreObject
 reference to the core simulation API
 
Time currentTime = Time::minVal()
 the current simulation time
 

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 ( const std::string &  fedName,
const FederateInfo fi 
)
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 fi
fia federate information structure

◆ CombinationFederate() [3/8]

helics::CombinationFederate::CombinationFederate ( const std::string &  fedName,
const std::shared_ptr< Core > &  core,
const FederateInfo fi = 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 fi
corea pointer to core object which the federate can join
fia federate information structure

◆ CombinationFederate() [4/8]

helics::CombinationFederate::CombinationFederate ( const std::string &  fedName,
CoreApp core,
const FederateInfo fi = 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 fi
corea CoreApp object representing the core to connect to
fia federate information structure

◆ CombinationFederate() [5/8]

helics::CombinationFederate::CombinationFederate ( const std::string &  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

References registerInterfaces().

◆ 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

References registerInterfaces().

◆ 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 ( IterationResult  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 ( const std::string &  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().

Referenced by CombinationFederate().

◆ 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: