 |
helics
3.0.1
|
9 #include "../application_api/Endpoints.hpp"
10 #include "../application_api/HelicsPrimaryTypes.hpp"
11 #include "../application_api/Publications.hpp"
12 #include "helicsApp.hpp"
49 explicit Player(std::vector<std::string> args);
54 Player(
int argc,
char* argv[]);
65 Player(
const std::string& name,
const std::shared_ptr<Core>& core,
const FederateInfo& fi);
77 Player(
const std::string& appName,
const std::string& configString);
90 virtual void initialize()
override;
95 virtual void runTo(
Time stopTime_input)
override;
102 void addPublication(
const std::string& key,
104 const std::string& pubUnits = std::string());
110 template<
class valType>
111 typename std::enable_if_t<helicsType<valType>() != DataType::HELICS_CUSTOM>
112 addPublication(
const std::string& key,
const std::string& pubUnits = std::string())
116 InterfaceVisibility::GLOBAL, fed.get(), key, helicsType<valType>(), pubUnits));
118 publications.push_back(
119 Publication(fed.get(), key, helicsType<valType>(), pubUnits));
122 pubids[key] =
static_cast<int>(publications.size()) - 1;
129 void addEndpoint(
const std::string& endpointName,
130 const std::string& endpointType = std::string());
136 template<
class valType>
137 void addPoint(
Time pubTime,
const std::string& key,
const valType& val)
139 points.resize(points.size() + 1);
140 points.back().time = pubTime;
141 points.back().pubName = key;
142 points.back().value = val;
151 template<
class valType>
152 void addPoint(
Time pubTime,
int iteration,
const std::string& key,
const valType& val)
154 points.resize(points.size() + 1);
155 points.back().time = pubTime;
156 points.back().iteration = iteration;
157 points.back().pubName = key;
158 points.back().value = val;
166 void addMessage(
Time sendTime,
167 const std::string& src,
168 const std::string& dest,
169 const std::string& payload);
178 void addMessage(
Time sendTime,
180 const std::string& src,
181 const std::string& dest,
182 const std::string& payload);
193 const auto&
getPoint(
int index)
const {
return points[index]; }
195 const auto&
getMessage(
int index)
const {
return messages[index]; }
198 std::unique_ptr<helicsCLI11App> generateParser();
204 virtual void loadJsonFile(
const std::string& jsonString)
override;
206 virtual void loadTextFile(
const std::string& filename)
override;
210 void generatePublications();
212 void generateEndpoints();
214 void cleanUpPointList();
217 void sendInformation(
Time sendTime,
int iteration = 0);
223 helics::Time extractTime(
const std::string& str,
int lineNumber = 0)
const;
226 std::vector<ValueSetter> points;
227 std::vector<MessageHolder> messages;
228 std::map<std::string, std::string> tags;
229 std::set<std::string> epts;
230 std::vector<Publication> publications;
231 std::vector<Endpoint> endpoints;
232 std::map<std::string, int> pubids;
233 std::map<std::string, int> eptids;
235 helics::DataType::HELICS_STRING;
236 size_t pointIndex = 0;
237 size_t messageIndex = 0;
238 time_units units = time_units::sec;
239 double timeMultiplier =
241 Time nextPrintTimeStep =
constexpr Time timeZero
Definition: helicsTime.hpp:31
std::variant< double, int64_t, std::string, std::complex< double >, std::vector< double >, std::vector< std::complex< double > >, NamedPoint > defV
Definition: HelicsPrimaryTypes.hpp:34
Definition: Player.hpp:42
Definition: Player.hpp:31
void addMessage(Time sendTime, const std::string &src, const std::string &dest, const std::string &payload)
Definition: Player.cpp:142
const auto & getPoint(int index) const
Definition: Player.hpp:193
const auto & getMessage(int index) const
Definition: Player.hpp:195
std::enable_if_t< helicsType< valType >) !=DataType::HELICS_CUSTOM > addPublication(const std::string &key, const std::string &pubUnits=std::string())
Definition: Player.hpp:112
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
@ HELICS_FLAG_SOURCE_ONLY
Definition: helics_enums.h:105
DataType getTypeFromString(std::string_view typeName)
Definition: helicsTypes.cpp:219
Definition: Player.hpp:22
@ FORCE_ITERATION
force an iteration whether it is needed or not
std::string masterFileName
the name of the master file used to do the construction
Definition: helicsApp.hpp:129
DataType
Definition: helicsTypes.hpp:272
void loadJsonFileConfiguration(const std::string &appName, const std::string &jsonString)
Definition: helicsApp.cpp:159
virtual void initialize() override
Definition: Player.cpp:618
Definition: FederateInfo.hpp:20
void addPoint(Time pubTime, int iteration, const std::string &key, const valType &val)
Definition: Player.hpp:152
auto endpointCount() const
Definition: Player.hpp:191
Definition: Publications.hpp:24
virtual void loadTextFile(const std::string &textFile)
Definition: helicsApp.cpp:134
void addEndpoint(const std::string &endpointName, const std::string &endpointType=std::string())
Definition: Player.cpp:754
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
virtual void runTo(Time stopTime_input) override
Definition: Player.cpp:662
void addPoint(Time pubTime, const std::string &key, const valType &val)
Definition: Player.hpp:137
std::shared_ptr< CombinationFederate > fed
the federate created for the Player
Definition: helicsApp.hpp:127
auto publicationCount() const
Definition: Player.hpp:189
Definition: helicsApp.hpp:28
void addPublication(const std::string &key, DataType type, const std::string &pubUnits=std::string())
Definition: Player.cpp:733
auto pointCount() const
Definition: Player.hpp:185
Time loadTimeFromString(const std::string &timeString)
Definition: timeOperations.cpp:19
void loadFile(const std::string &filename)
Definition: helicsApp.cpp:124
Definition: core-data.hpp:29
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:132
auto messageCount() const
Definition: Player.hpp:187