| helics 3.6.1

Public Member Functions | List of all members
helics::apps::Echo Class Reference

`#include <Echo.hpp>`

Inheritance diagram for helics::apps::Echo:

## Public Member Functions
| Echo ()=default
| Echo (std::vector< std::string > args)
| Echo (int argc, char *argv[])
| Echo (std::string_view name, const FederateInfo &fedInfo)
| Echo (std::string_view name, const std::shared_ptr< Core > &core, const FederateInfo &fedInfo)
| Echo (std::string_view name, CoreApp &core, const FederateInfo &fedInfo)
| Echo (std::string_view name, const std::string &jsonString)
| Echo (Echo &&other_echo) noexcept
Echo & | operator= (Echo &&other_echo) noexcept
virtual void | runTo (Time stopTime_input) override
void | addEndpoint (std::string_view endpointName, std::string_view endpointType="")
auto | echoCount () const
void | setEchoDelay (Time delay)
auto | endpointCount () const
Public Member Functions inherited from helics::apps::App
| App ()=default
| App (std::string_view defaultAppName, std::vector< std::string > args)
| App (std::string_view defaultAppName, int argc, char *argv[])
| App (std::string_view appName, const FederateInfo &fedInfo)
| App (std::string_view appName, const std::shared_ptr< Core > &core, const FederateInfo &fedInfo)
| App (std::string_view appName, CoreApp &core, const FederateInfo &fedInfo)
| App (std::string_view appName, const std::string &configString)
| App (App &&other_app)=default
| App (const App &other_app)=delete
App & | operator= (App &&app)=default
App & | operator= (const App &app)=delete
void | loadFile (const std::string &filename, bool enableFederateInterfaceRegistration=true)
virtual void | initialize ()
virtual void | run ()
virtual void | finalize ()
bool | isActive () const
const CombinationFederate & | accessUnderlyingFederate () const
std::shared_ptr< CombinationFederate > | getUnderlyingFederatePointer ()

## Additional Inherited Members
Protected Member Functions inherited from helics::apps::App
void | loadJsonFileConfiguration (const std::string &appName, const std::string &jsonString, bool enableFederateInterfaceRegistration)
virtual void | loadTextFile (const std::string &textFile)
void | loadInputFiles ()
void | loadConfigOptions (AppTextParser &aparser)
Protected Attributes inherited from helics::apps::App
std::shared_ptr< CombinationFederate > | fed
| the federate created for the App
Time | stopTime = Time::maxVal()
| the time the App should stop
std::string | configFileName
| name of the config file used for constructing the federate
std::string | inputFileName
| the name of the app input file
std::string | outFileName
| the name of any output file
bool | useLocal {false}
bool | fileLoaded {false}
bool | deactivated {false}
bool | quietMode {false}
bool | helpMode {false}
std::vector< std::string > | remArgs

## Detailed Description

class implementing an Echo object, which will generate endpoint interfaces and send a data message back to the source at the with a specified delay

the Echo class is NOT threadsafe in general, don't try to use it from multiple threads without external protection, that will result in undefined behavior. One exception is the setEchoDelay function is threadsafe, and const methods will not cause problems but may not give consistent answers if used from multiple threads unless protected.

## Constructor & Destructor Documentation

## ◆ Echo() [1/8]

helics::apps::Echo::Echo | ( |  | ) |
| default

default constructor

## ◆ Echo() [2/8]

helics::apps::Echo::Echo | ( | std::vector< std::string > | args | ) |
| explicit

construct from command line arguments

Parameters

  args | a vector of command line arguments

## ◆ Echo() [3/8]

helics::apps::Echo::Echo | ( | int | argc,
|  | char * | argv[]
| ) |  |

construct from command line arguments

Parameters

  argc | the number of arguments
  argv | the strings in the input

## ◆ Echo() [4/8]

helics::apps::Echo::Echo | ( | std::string_view | name,
|  | const FederateInfo & | fedInfo
| ) |  |
| explicit

construct from a federate info object

Parameters

  name | the name of the echo app, can be empty to get name from fedInfo or default
  fedInfo | a pointer info object containing information on the desired federate configuration

## ◆ Echo() [5/8]

helics::apps::Echo::Echo | ( | std::string_view | name,
|  | const std::shared_ptr< Core > & | core,
|  | const FederateInfo & | fedInfo
| ) |  |

constructor taking a federate information structure and using the given core

Parameters

  name | the name of the echo app, can be empty to get name from fedInfo or default
  core | a pointer to core object which the federate can join
  fedInfo | a federate information structure

## ◆ Echo() [6/8]

helics::apps::Echo::Echo | ( | std::string_view | name,
|  | CoreApp & | core,
|  | const FederateInfo & | fedInfo
| ) |  |

constructor taking a federate information structure and using the given core

Parameters

  name | the name of the federate (can be empty to use defaults from fedInfo)
  core | a coreApp object that can be joined
  fedInfo | a federate information structure

## ◆ Echo() [7/8]

helics::apps::Echo::Echo | ( | std::string_view | name,
|  | const std::string & | jsonString
| ) |  |

constructor taking a file with the required information

Parameters

  name | the name of the echo app, can be empty to get name from fedInfo or default
  jsonString | file or JSON string defining the federate information and other configuration

## ◆ Echo() [8/8]

helics::apps::Echo::Echo | ( | Echo && | other_echo | ) |
| noexcept

move construction

## Member Function Documentation

## ◆ addEndpoint()

void helics::apps::Echo::addEndpoint | ( | std::string_view | endpointName,
|  | std::string_view | endpointType = `""`
| ) |  |

add an endpoint to the Player

Parameters

  endpointName | the name of the endpoint
  endpointType | the named type of the endpoint

References helics::apps::App::fed.

## ◆ echoCount()

auto helics::apps::Echo::echoCount | ( |  | ) | const
| inline

get the number of points loaded

## ◆ endpointCount()

auto helics::apps::Echo::endpointCount | ( |  | ) | const
| inline

get the number of endpoints

## ◆ operator=()

Echo & helics::apps::Echo::operator= | ( | Echo && | other_echo | ) |
| noexcept

move assignment

References helics::apps::App::operator=().

## ◆ runTo()

void helics::apps::Echo::runTo | ( | Time | stopTime_input | ) |
| override virtual

run the Echo federate until the specified time

Parameters

  stopTime_input | the desired stop time

Implements helics::apps::App.

References helics::Federate::EXECUTING, helics::apps::App::fed, helics::Federate::FINALIZE, helics::apps::App::initialize(), and helics::Federate::STARTUP.

## ◆ setEchoDelay()

void helics::apps::Echo::setEchoDelay | ( | Time | delay | ) |

set the delay time Function is threadsafe

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

- Echo.hpp
- Echo.cpp