helics  3.5.2
Classes | Public Member Functions | Protected Attributes | List of all members
helics::apps::Clone Class Reference

#include <Clone.hpp>

+ Inheritance diagram for helics::apps::Clone:

Classes

class  ValueCapture
 

Public Member Functions

 Clone (std::string_view appName, FederateInfo &fedInfo)
 
 Clone (std::vector< std::string > args)
 
 Clone (int argc, char *argv[])
 
 Clone (std::string_view appName, const std::shared_ptr< Core > &core, const FederateInfo &fedInfo)
 
 Clone (std::string_view appName, CoreApp &core, const FederateInfo &fedInfo)
 
 Clone (std::string_view appName, const std::string &jsonString)
 
 Clone (Clone &&other_recorder)=default
 
Cloneoperator= (Clone &&record)=default
 
 ~Clone ()
 
virtual void runTo (Time runToTime) override
 
void saveFile (const std::string &filename=std::string{})
 
auto pointCount () const
 
auto messageCount () const
 
std::tuple< Time, std::string, std::string > getValue (int index) const
 
std::unique_ptr< MessagegetMessage (int index) const
 
void setFederateToClone (std::string_view federateName)
 
void setOutputFile (std::string_view fileName)
 
- 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
 
Appoperator= (App &&app)=default
 
Appoperator= (const App &app)=delete
 
void loadFile (const std::string &filename, bool enableFederateInterfaceRegistration=true)
 
virtual void run ()
 
virtual void finalize ()
 
bool isActive () const
 
const CombinationFederateaccessUnderlyingFederate () const
 

Protected Attributes

bool allow_iteration {false}
 trigger to allow Iteration
 
bool verbose {false}
 print all captured values to the screen
 
bool fileSaved {false}
 true if the file has been saved already
 
Time nextPrintTimeStep
 the time advancement period for printing markers More...
 
std::unique_ptr< CloningFiltercFilt
 a pointer to a clone filter
 
std::vector< ValueCapturepoints
 lists of points that were captured
 
std::deque< Inputsubscriptions
 the actual subscription objects
 
std::vector< std::string > cloneSubscriptionNames
 string of the subscriptions of the cloned federate
 
std::unique_ptr< EndpointcloneEndpoint
 the endpoint for cloned message delivery
 
std::vector< std::unique_ptr< Message > > messages
 list of messages
 
std::map< helics::InterfaceHandle, int > subids
 map of the subscription ids
 
std::map< std::string_view, int > subkeys
 translate subscription names to an index
 
std::map< helics::InterfaceHandle, int > eptids
 
std::map< std::string_view, int > eptNames
 translate endpoint name to index
 
std::string captureFederate
 storage for the name of the federate to clone
 
std::string fedConfig
 storage for the federateConfiguration
 
std::string outFileName {"clone.json"}
 the final output file
 
std::vector< int > pubPointCount
 a vector containing the counts of each publication
 
- Protected Attributes inherited from helics::apps::App
std::shared_ptr< CombinationFederatefed
 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
 
bool useLocal {false}
 
bool fileLoaded {false}
 
bool deactivated {false}
 
bool quietMode {false}
 
bool helpMode {false}
 
std::vector< std::string > remArgs
 

Additional Inherited Members

- Protected Member Functions inherited from helics::apps::App
virtual void loadJsonFile (const std::string &jsonString, bool enableFederateInterfaceRegistration)
 
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)
 

Detailed Description

class designed to capture data points from a set of subscriptions or endpoints

Constructor & Destructor Documentation

◆ Clone() [1/7]

helics::apps::Clone::Clone ( std::string_view  appName,
FederateInfo fedInfo 
)

construct from a FederateInfo structure

Parameters
appNamethe name of the Recorder, can be left empty for the default or to pull from the federateInfo object
fedInfoa federate information structure

◆ Clone() [2/7]

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

construct from command line arguments in a vector

Parameters
argsthe command line arguments to pass in a reverse vector

◆ Clone() [3/7]

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

construct from command line arguments

◆ Clone() [4/7]

helics::apps::Clone::Clone ( std::string_view  appName,
const std::shared_ptr< Core > &  core,
const FederateInfo fedInfo 
)

constructor taking a federate information structure and using the given core

Parameters
appNamethe name of the Recorder, can be left empty for the default or to pull from the federateInfo object
corea pointer to core object which the federate can join
fedInfoa federate information structure

◆ Clone() [5/7]

helics::apps::Clone::Clone ( std::string_view  appName,
CoreApp &  core,
const FederateInfo fedInfo 
)

constructor taking a federate information structure and using the given core

Parameters
appNamethe name of the federate (can be empty to use defaults from fedInfo)
corea coreApp object that can be joined
fedInfoa federate information structure

◆ Clone() [6/7]

helics::apps::Clone::Clone ( std::string_view  appName,
const std::string &  jsonString 
)

constructor taking a file with the required information

Parameters
appNamethe name of the app
jsonStringa file or json string defining the federate information in JSON or text

◆ Clone() [7/7]

helics::apps::Clone::Clone ( Clone &&  other_recorder)
default

move construction

◆ ~Clone()

helics::apps::Clone::~Clone ( )

destructor

References fileSaved, outFileName, and saveFile().

Member Function Documentation

◆ getMessage()

std::unique_ptr< Message > helics::apps::Clone::getMessage ( int  index) const

get a message

makes a copy of a message and returns it in a unique_ptr

Parameters
indexthe number of the message to retrieve

References helics::isValidIndex(), and messages.

◆ getValue()

std::tuple< Time, std::string, std::string > helics::apps::Clone::getValue ( int  index) const

get a string with the value of point index

Parameters
indexthe number of the point to retrieve
Returns
a pair with the tag as the first element and the value as the second

References helics::isValidIndex(), points, and subscriptions.

◆ messageCount()

auto helics::apps::Clone::messageCount ( ) const
inline

get the number of captured messages

◆ operator=()

Clone& helics::apps::Clone::operator= ( Clone &&  record)
default

move assignment

◆ pointCount()

auto helics::apps::Clone::pointCount ( ) const
inline

get the number of captured points

◆ runTo()

void helics::apps::Clone::runTo ( Time  runToTime)
overridevirtual

run the Cloner until the specified time

run the Player until the specified time

Implements helics::apps::App.

References allow_iteration, helics::apps::App::fed, helics::ITERATE_IF_NEEDED, helics::NEXT_STEP, nextPrintTimeStep, and helics::timeZero.

◆ saveFile()

void helics::apps::Clone::saveFile ( const std::string &  filename = std::string{})

save the data to a file

References cloneSubscriptionNames, fedConfig, fileSaved, messages, outFileName, points, and subscriptions.

Referenced by ~Clone().

◆ setFederateToClone()

void helics::apps::Clone::setFederateToClone ( std::string_view  federateName)

set the name of the federate to Clone

Parameters
federateNamethe name of the federate to clone

References captureFederate.

◆ setOutputFile()

void helics::apps::Clone::setOutputFile ( std::string_view  fileName)
inline

set the name of the output file

Parameters
fileNamethe name of the file, can be "" if no file should be auto saved

Member Data Documentation

◆ nextPrintTimeStep

Time helics::apps::Clone::nextPrintTimeStep
protected
Initial value:
{
constexpr Time timeZero
Definition: helicsTime.hpp:31

the time advancement period for printing markers

Referenced by runTo().


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