 |
helics
2.8.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>() != data_type::helics_custom>
112 addPublication(
const std::string& key,
const std::string& pubUnits = std::string())
115 publications.push_back(
116 Publication(GLOBAL,
fed.get(), key, helicsType<valType>(), pubUnits));
118 publications.push_back(
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::data_type::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: helics-time.hpp:31
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
helics::Time loadJsonTime(const Json::Value &timeElement, time_units defaultUnits=time_units::sec)
Definition: JsonProcessingFunctions.cpp:64
const auto & getMessage(int index) const
Definition: Player.hpp:195
TimeRepresentation< count_time< 9 > > Time
Definition: helics-time.hpp:27
@ force_iteration
force an iteration whether it is needed or not
Definition: Player.hpp:22
std::enable_if_t< helicsType< valType >) !=data_type::helics_custom > addPublication(const std::string &key, const std::string &pubUnits=std::string())
Definition: Player.hpp:112
std::string masterFileName
the name of the master file used to do the construction
Definition: helicsApp.hpp:129
void loadJsonFileConfiguration(const std::string &appName, const std::string &jsonString)
Definition: helicsApp.cpp:159
virtual void initialize() override
Definition: Player.cpp:618
void addPublication(const std::string &key, data_type type, const std::string &pubUnits=std::string())
Definition: Player.cpp:733
Definition: FederateInfo.hpp:20
Json::Value loadJson(const std::string &jsonString)
Definition: JsonProcessingFunctions.cpp:24
@ startup
when created the federate is in startup state
Json::Value loadJsonStr(const std::string &jsonString)
Definition: JsonProcessingFunctions.cpp:50
@ helics_flag_source_only
Definition: helics_enums.h:92
@ fed
special logging command for message coming from a fed
Definition: loggingHelper.hpp:32
mpark::variant< double, int64_t, std::string, std::complex< double >, std::vector< double >, std::vector< std::complex< double > >, NamedPoint > defV
Definition: HelicsPrimaryTypes.hpp:34
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:23
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:752
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
data_type
Definition: helicsTypes.hpp:275
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
data_type getTypeFromString(const std::string &typeName)
Definition: helicsTypes.cpp:187
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:146
@ executing
entered after the enterExectuationState call has returned
bool isValidIndex(sizeType testSize, const SizedDataType &vec)
Definition: core-data.hpp:249
auto messageCount() const
Definition: Player.hpp:187