71 explicit Source(std::vector<std::string> args);
76 Source(
int argc,
char* argv[]);
88 Source(std::string_view name,
89 const std::shared_ptr<Core>& core,
102 Source(std::string_view name,
const std::string& configString);
113 virtual void initialize()
override;
118 virtual void runTo(
Time stopTime_input)
override;
127 void addPublication(std::string_view key,
128 std::string_view generator,
131 std::string_view units = std::string_view());
142 std::string_view units = std::string_view())
144 addPublication(key, std::string_view(), type, period, units);
149 int addSignalGenerator(std::string_view name, std::string_view type);
151 void setStartTime(std::string_view key,
Time startTime);
153 void setPeriod(std::string_view key,
Time period);
155 void linkPublicationToGenerator(std::string_view key, std::string_view generator);
157 void linkPublicationToGenerator(std::string_view key,
int genIndex);
159 std::shared_ptr<SignalGenerator> getGenerator(
int index);
169 virtual void loadJsonFile(
const std::string& jsonString,
170 bool enableFederateInterfaceRegistration)
override;
174 Time runSourceLoop(
Time currentTime);
177 std::deque<SourceObject> sources;
178 std::vector<std::shared_ptr<SignalGenerator>> generators;
179 std::map<std::string_view, int> generatorLookup;
180 std::vector<Endpoint> endpoints;
181 std::map<std::string_view, int> pubids;
182 Time defaultPeriod = 1.0;
void addPublication(std::string_view key, DataType type, Time period, std::string_view units=std::string_view())
Definition Source.hpp:139
std::variant< double, int64_t, std::string, std::complex< double >, std::vector< double >, std::vector< std::complex< double > >, NamedPoint > defV
Definition HelicsPrimaryTypes.hpp:37