helics  2.8.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 &key, const std::string &type, const std::string &units=std::string())
 
template<typename X >
PublicationregisterPublication (const std::string &key, const std::string &units=std::string())
 
PublicationregisterGlobalPublication (const std::string &key, const std::string &type, const std::string &units=std::string())
 
template<typename X >
PublicationregisterGlobalPublication (const std::string &key, const std::string &units=std::string())
 
template<typename X >
PublicationregisterIndexedPublication (const std::string &key, int index1, const std::string &units=std::string())
 
template<typename X >
PublicationregisterIndexedPublication (const std::string &key, int index1, int index2, const std::string &units=std::string())
 
template<typename X >
PublicationregisterPublicationIndexed (const std::string &key, int index1, const std::string &units=std::string())
 
template<typename X >
PublicationregisterPublicationIndexed (const std::string &key, int index1, int index2, const std::string &units=std::string())
 
InputregisterInput (const std::string &key, const std::string &type, const std::string &units=std::string())
 
InputregisterGlobalInput (const std::string &key, const std::string &type, const std::string &units=std::string())
 
template<typename X >
InputregisterInput (const std::string &key, const std::string &units=std::string())
 
template<typename X >
InputregisterGlobalInput (const std::string &key, const std::string &units=std::string())
 
template<typename X >
InputregisterIndexedInput (const std::string &key, int index1, const std::string &units=std::string())
 
template<typename X >
InputregisterIndexedInput (const std::string &key, int index1, int index2, const std::string &units=std::string())
 
template<typename X >
InputregisterInputIndexed (const std::string &key, int index1, const std::string &units=std::string())
 
template<typename X >
InputregisterInputIndexed (const std::string &key, 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())
 
InputregisterSubscriptionIndexed (const std::string &target, int index1, const std::string &units=std::string())
 
InputregisterSubscriptionIndexed (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 getValueRaw (const Input &inp)
 
void publishRaw (const Publication &pub, data_view block)
 
void publishRaw (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 &key) const
 
InputgetInput (const std::string &key)
 
const InputgetInput (int index) const
 
InputgetInput (int index)
 
const InputgetInput (const std::string &key, int index1) const
 
const InputgetInput (const std::string &key, int index1, int index2) const
 
const InputgetSubscription (const std::string &target) const
 
InputgetSubscription (const std::string &target)
 
PublicationgetPublication (const std::string &key)
 
const PublicationgetPublication (const std::string &key) const
 
PublicationgetPublication (int index)
 
const PublicationgetPublication (int index) const
 
const PublicationgetPublication (const std::string &key, int index1) const
 
const PublicationgetPublication (const std::string &key, 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 ()
 
iteration_result enterExecutingMode (iteration_request iterate=iteration_request::no_iterations)
 
void enterExecutingModeAsync (iteration_request iterate=iteration_request::no_iterations)
 
iteration_result enterExecutingModeComplete ()
 
void finalize ()
 
void finalizeAsync ()
 
void finalizeComplete ()
 
void error (int errorcode)
 
void error (int errorcode, const std::string &message)
 
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, iteration_request iterate)
 
void requestTimeAsync (Time nextInternalTimeStep)
 
void requestTimeIterativeAsync (Time nextInternalTimeStep, iteration_request iterate)
 
Time requestTimeComplete ()
 
iteration_time requestTimeIterativeComplete ()
 
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, const std::string &, const std::string &)> &logFunction)
 
std::string query (const std::string &target, const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast)
 
std::string query (const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast)
 
query_id_t queryAsync (const std::string &target, const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast)
 
query_id_t queryAsync (const std::string &queryStr, helics_sequencing_mode mode=helics_sequencing_mode_fast)
 
std::string queryComplete (query_id_t queryIndex)
 
bool isQueryCompleted (query_id_t queryIndex) const
 
void setQueryCallback (const std::function< std::string(const std::string &)> &queryFunction)
 
void setGlobal (const std::string &valueName, const std::string &value)
 
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 ()
 
void addSourceTarget (const Filter &filt, const std::string &targetEndpoint)
 
void addDestinationTarget (const Filter &filt, const std::string &targetEndpoint)
 
const std::string & getInterfaceName (interface_handle handle) const
 
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)
 
void closeInterface (interface_handle handle)
 
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 setInfo (interface_handle handle, const std::string &info)
 
const std::string & getInfo (interface_handle handle)
 
void setInterfaceOption (interface_handle handle, int32_t option, int32_t option_value=1)
 
int32_t getInterfaceOption (interface_handle handle, int32_t option)
 
const std::string & getInjectionType (interface_handle handle) const
 
const std::string & getExtractionType (interface_handle handle) const
 
const std::string & getInjectionUnits (interface_handle handle) const
 
const std::string & getExtractionUnits (interface_handle handle) const
 
const std::string & getInterfaceUnits (interface_handle handle) 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())
 
EndpointregisterGlobalEndpoint (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 registerKnownCommunicationPath (const Endpoint &localEndpoint, const std::string &remoteEndpoint)
 
void subscribe (const Endpoint &ept, const std::string &key)
 
bool hasMessage () const
 
bool hasMessage (const Endpoint &ept) const
 
uint64_t pendingMessages (const Endpoint &ept) const
 
uint64_t pendingMessages () const
 
std::unique_ptr< MessagegetMessage (const Endpoint &ept)
 
std::unique_ptr< MessagegetMessage ()
 
void sendMessage (const Endpoint &source, const std::string &dest, const char *data, size_t dataLength)
 
void sendMessage (const Endpoint &source, const std::string &dest, const data_view &message)
 
void sendMessage (const Endpoint &source, const std::string &dest, const char *data, size_t dataLength, Time sendTime)
 
void sendMessage (const Endpoint &source, const std::string &dest, const data_view &message, Time sendTime)
 
void sendMessage (const Endpoint &source, std::unique_ptr< Message > message)
 
void sendMessage (const Endpoint &source, const Message &message)
 
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)
 
void addSourceFilter (const Endpoint &ept, const std::string &filterName)
 
void addDestinationFilter (const Endpoint &ept, const std::string &filterName)
 
int getEndpointCount () const
 

Protected Member Functions

virtual void updateTime (Time newTime, Time oldTime) override
 
virtual void startupToInitializeStateTransition () override
 
virtual void initializeToExecuteStateTransition (iteration_result result) override
 
virtual std::string localQuery (const std::string &queryStr) const override
 

Additional Inherited Members

- Public Types inherited from helics::Federate
enum  modes : char {
  modes::startup = 0, modes::initializing = 1, modes::executing = 2, modes::finalize,
  modes::error = 4, modes::pending_init = 5, modes::pending_exec = 6, modes::pending_time = 7,
  modes::pending_iterative_time, modes::pending_finalize = 9, modes::finished = 10
}
 
- Static Public Member Functions inherited from helics::ValueFederate
static double getDouble (Input &inp)
 
static const std::string & getString (Input &inp)
 
static void publish (Publication &pub, const std::string &str)
 
static void publish (Publication &pub, double val)
 
- 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}
 
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 ( iteration_result  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: