helics  3.5.2
EmptyCore.hpp
1 /*
2 Copyright (c) 2017-2024,
3 Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Sustainable
4 Energy, LLC. See the top-level NOTICE for additional details. All rights reserved.
5 SPDX-License-Identifier: BSD-3-Clause
6 */
7 #pragma once
8 
9 #include "Core.hpp"
10 
11 #include <memory>
12 #include <string>
13 #include <utility>
14 #include <vector>
15 
16 namespace helics {
17 
19 class EmptyCore: public Core {
20  public:
22  EmptyCore() noexcept;
23 
24  virtual ~EmptyCore();
25 
26  virtual void configure(std::string_view configureString) override;
27  virtual void configureFromArgs(int argc, char* argv[]) override;
28  virtual void configureFromVector(std::vector<std::string> args) override;
29  virtual bool isConfigured() const override;
30  virtual bool isOpenToNewFederates() const override;
31  virtual bool hasError() const override;
32  virtual void globalError(LocalFederateId federateID,
33  int errorCode,
34  std::string_view errorString) override;
35  virtual void localError(LocalFederateId federateID,
36  int errorCode,
37  std::string_view errorString) override;
38  virtual int getErrorCode() const override;
39  virtual std::string getErrorMessage() const override;
40  virtual void finalize(LocalFederateId federateID) override;
41  virtual bool enterInitializingMode(LocalFederateId federateID,
42  IterationRequest request) override;
43  virtual void setCoreReadyToInit() override;
45  IterationRequest iterate = NO_ITERATION) override;
46  virtual LocalFederateId registerFederate(std::string_view name,
47  const CoreFederateInfo& info) override;
48  virtual const std::string& getFederateName(LocalFederateId federateID) const override;
49  virtual LocalFederateId getFederateId(std::string_view name) const override;
50  virtual int32_t getFederationSize() override;
51  virtual Time timeRequest(LocalFederateId federateID, Time next) override;
53  Time next,
54  IterationRequest iterate) override;
55  virtual void processCommunications(LocalFederateId fedId,
56  std::chrono::milliseconds msToWait) override final;
57  virtual Time getCurrentTime(LocalFederateId federateID) const override;
58  virtual void setTimeProperty(LocalFederateId federateID, int32_t property, Time time) override;
59  virtual void setIntegerProperty(LocalFederateId federateID,
60  int32_t property,
61  int16_t propertyValue) override;
62  virtual Time getTimeProperty(LocalFederateId federateID, int32_t property) const override;
63  virtual int16_t getIntegerProperty(LocalFederateId federateID, int32_t property) const override;
64  virtual void
65  setFlagOption(LocalFederateId federateID, int32_t flag, bool flagValue = true) override;
66  virtual bool getFlagOption(LocalFederateId federateID, int32_t flag) const override;
67 
69  std::string_view key,
70  std::string_view type,
71  std::string_view units) override;
73  std::string_view key) const override;
75  std::string_view key,
76  std::string_view type,
77  std::string_view units) override;
78 
79  virtual InterfaceHandle getInput(LocalFederateId federateID,
80  std::string_view key) const override;
81 
82  virtual InterfaceHandle registerTranslator(std::string_view translatorName,
83  std::string_view message_type,
84  std::string_view units) override;
85 
86  virtual const std::string& getHandleName(InterfaceHandle handle) const override;
87 
88  virtual void
89  setHandleOption(InterfaceHandle handle, int32_t option, int32_t option_value) override;
90 
91  virtual int32_t getHandleOption(InterfaceHandle handle, int32_t option) const override;
92  virtual void closeHandle(InterfaceHandle handle) override;
93  virtual void removeTarget(InterfaceHandle handle, std::string_view targetToRemove) override;
94  virtual void addDestinationTarget(InterfaceHandle handle,
95  std::string_view dest,
96  InterfaceType hint) override;
97  virtual void
98  addSourceTarget(InterfaceHandle handle, std::string_view name, InterfaceType hint) override;
99  virtual const std::string& getDestinationTargets(InterfaceHandle handle) const override;
100 
101  virtual const std::string& getSourceTargets(InterfaceHandle handle) const override;
102  virtual const std::string& getInjectionUnits(InterfaceHandle handle) const override;
103  virtual const std::string& getExtractionUnits(InterfaceHandle handle) const override;
104  virtual const std::string& getInjectionType(InterfaceHandle handle) const override;
105  virtual const std::string& getExtractionType(InterfaceHandle handle) const override;
106  virtual void setValue(InterfaceHandle handle, const char* data, uint64_t len) override;
107  virtual const std::shared_ptr<const SmallBuffer>& getValue(InterfaceHandle handle,
108  uint32_t* inputIndex) override;
109  virtual const std::vector<std::shared_ptr<const SmallBuffer>>&
110  getAllValues(InterfaceHandle handle) override;
111  virtual const std::vector<InterfaceHandle>&
112  getValueUpdates(LocalFederateId federateID) override;
114  std::string_view name,
115  std::string_view type) override;
116 
118  std::string_view name,
119  std::string_view type) override;
120  virtual InterfaceHandle getEndpoint(LocalFederateId federateID,
121  std::string_view name) const override;
122 
124  std::string_view name) override final;
125 
126  virtual InterfaceHandle getDataSink(LocalFederateId federateID,
127  std::string_view name) const override final;
128 
129  virtual InterfaceHandle registerFilter(std::string_view filterName,
130  std::string_view type_in,
131  std::string_view type_out) override;
132  virtual InterfaceHandle registerCloningFilter(std::string_view filterName,
133  std::string_view type_in,
134  std::string_view type_out) override;
135  virtual InterfaceHandle getFilter(std::string_view name) const override;
136  virtual InterfaceHandle getTranslator(std::string_view name) const override;
137  virtual void addDependency(LocalFederateId federateID, std::string_view federateName) override;
138  virtual void linkEndpoints(std::string_view source, std::string_view dest) override;
139  virtual void addAlias(std::string_view interfaceKey, std::string_view alias) override;
140  virtual void makeConnections(const std::string& file) override;
141  virtual void dataLink(std::string_view source, std::string_view target) override;
142  virtual void addSourceFilterToEndpoint(std::string_view filter,
143  std::string_view endpoint) override;
144  virtual void addDestinationFilterToEndpoint(std::string_view filter,
145  std::string_view endpoint) override;
146  virtual void send(InterfaceHandle sourceHandle, const void* data, uint64_t length) override;
147  virtual void
148  sendAt(InterfaceHandle sourceHandle, const void* data, uint64_t length, Time time) override;
149  virtual void sendTo(InterfaceHandle sourceHandle,
150  const void* data,
151  uint64_t length,
152  std::string_view destination) override;
153  virtual void sendToAt(InterfaceHandle sourceHandle,
154  const void* data,
155  uint64_t length,
156  std::string_view destination,
157  Time time) override;
158  virtual void sendMessage(InterfaceHandle sourceHandle,
159  std::unique_ptr<Message> message) override;
160  virtual uint64_t receiveCount(InterfaceHandle destination) override;
161  virtual std::unique_ptr<Message> receive(InterfaceHandle destination) override;
162  virtual std::unique_ptr<Message> receiveAny(LocalFederateId federateID,
163  InterfaceHandle& endpoint_id) override;
164  virtual uint64_t receiveCountAny(LocalFederateId federateID) override;
165  virtual void logMessage(LocalFederateId federateID,
166  int logLevel,
167  std::string_view messageToLog) override;
168  virtual void setFilterOperator(InterfaceHandle filter,
169  std::shared_ptr<FilterOperator> callback) override;
170  virtual void setTranslatorOperator(InterfaceHandle translator,
171  std::shared_ptr<TranslatorOperator> callback) override;
172  virtual void setFederateOperator(LocalFederateId federateID,
173  std::shared_ptr<FederateOperator> callback) override;
175  virtual const std::string& getIdentifier() const override;
176  virtual const std::string& getAddress() const override;
177 
179  virtual void setLoggingLevel(int logLevel) override;
180  virtual void setLoggingCallback(
181  LocalFederateId federateID,
182  std::function<void(int, std::string_view, std::string_view)> logFunction) override;
183 
184  virtual void setLogFile(std::string_view lfile) override;
185 
186  virtual std::string query(std::string_view target,
187  std::string_view queryStr,
188  HelicsSequencingModes mode) override;
189  virtual void setQueryCallback(LocalFederateId federateID,
190  std::function<std::string(std::string_view)> queryFunction,
191  int order) override;
192  virtual void setGlobal(std::string_view valueName, std::string_view value) override;
193  virtual void sendCommand(std::string_view target,
194  std::string_view commandStr,
195  std::string_view source,
196  HelicsSequencingModes mode) override;
197  virtual std::pair<std::string, std::string> getCommand(LocalFederateId federateID) override;
198 
199  virtual std::pair<std::string, std::string> waitCommand(LocalFederateId federateID) override;
200 
201  virtual bool connect() override;
202  virtual bool isConnected() const override;
203  virtual void disconnect() override;
204  virtual bool waitForDisconnect(
205  std::chrono::milliseconds msToWait = std::chrono::milliseconds(0)) const override;
206 
208  virtual void setInterfaceInfo(InterfaceHandle handle, std::string_view info) override;
210  virtual const std::string& getInterfaceInfo(InterfaceHandle handle) const override;
211 
212  virtual void setInterfaceTag(InterfaceHandle handle,
213  std::string_view tag,
214  std::string_view value) override;
215  virtual const std::string& getInterfaceTag(InterfaceHandle handle,
216  std::string_view tag) const override;
217 
218  virtual void
219  setFederateTag(LocalFederateId fid, std::string_view tag, std::string_view value) override;
220  virtual const std::string& getFederateTag(LocalFederateId fid,
221  std::string_view tag) const override;
222 
223  private:
224  static const std::string emptyString;
225 };
226 
227 } // namespace helics
constexpr auto NO_ITERATION
simplified alias to indicate that no iterations are needed
Definition: CoreTypes.hpp:127
Definition: CoreFederateInfo.hpp:16
Definition: core/Core.hpp:41
Definition: EmptyCore.hpp:19
virtual void setFederateOperator(LocalFederateId federateID, std::shared_ptr< FederateOperator > callback) override
Definition: EmptyCore.cpp:470
virtual InterfaceHandle registerPublication(LocalFederateId federateID, std::string_view key, std::string_view type, std::string_view units) override
Definition: EmptyCore.cpp:205
virtual const std::shared_ptr< const SmallBuffer > & getValue(InterfaceHandle handle, uint32_t *inputIndex) override
Definition: EmptyCore.cpp:285
virtual void logMessage(LocalFederateId federateID, int logLevel, std::string_view messageToLog) override
Definition: EmptyCore.cpp:429
virtual int32_t getFederationSize() override
Definition: EmptyCore.cpp:129
virtual LocalFederateId registerFederate(std::string_view name, const CoreFederateInfo &info) override
Definition: EmptyCore.cpp:111
virtual void setTranslatorOperator(InterfaceHandle translator, std::shared_ptr< TranslatorOperator > callback) override
Definition: EmptyCore.cpp:465
virtual bool isConnected() const override
Definition: EmptyCore.cpp:34
virtual bool enterInitializingMode(LocalFederateId federateID, IterationRequest request) override
Definition: EmptyCore.cpp:100
virtual void setGlobal(std::string_view valueName, std::string_view value) override
Definition: EmptyCore.cpp:512
virtual InterfaceHandle getInput(LocalFederateId federateID, std::string_view key) const override
Definition: EmptyCore.cpp:200
virtual const std::string & getFederateName(LocalFederateId federateID) const override
Definition: EmptyCore.cpp:117
virtual const std::string & getInjectionType(InterfaceHandle handle) const override
Definition: EmptyCore.cpp:234
virtual void disconnect() override
Definition: EmptyCore.cpp:49
virtual Time getCurrentTime(LocalFederateId federateID) const override
Definition: EmptyCore.cpp:151
virtual void finalize(LocalFederateId federateID) override
Definition: EmptyCore.cpp:96
virtual void setInterfaceInfo(InterfaceHandle handle, std::string_view info) override
Definition: EmptyCore.cpp:526
virtual void setFilterOperator(InterfaceHandle filter, std::shared_ptr< FilterOperator > callback) override
Definition: EmptyCore.cpp:460
virtual const std::string & getFederateTag(LocalFederateId fid, std::string_view tag) const override
Definition: EmptyCore.cpp:540
virtual iteration_time requestTimeIterative(LocalFederateId federateID, Time next, IterationRequest iterate) override
Definition: EmptyCore.cpp:139
virtual void setCoreReadyToInit() override
Definition: EmptyCore.cpp:98
virtual void setInterfaceTag(InterfaceHandle handle, std::string_view tag, std::string_view value) override
Definition: EmptyCore.cpp:534
virtual InterfaceHandle registerEndpoint(LocalFederateId federateID, std::string_view name, std::string_view type) override
Definition: EmptyCore.cpp:306
virtual std::pair< std::string, std::string > getCommand(LocalFederateId federateID) override
Definition: EmptyCore.cpp:444
virtual void setValue(InterfaceHandle handle, const char *data, uint64_t len) override
Definition: EmptyCore.cpp:283
virtual int32_t getHandleOption(InterfaceHandle handle, int32_t option) const override
Definition: EmptyCore.cpp:250
virtual bool isOpenToNewFederates() const override
Definition: EmptyCore.cpp:63
virtual InterfaceHandle getDataSink(LocalFederateId federateID, std::string_view name) const override final
Definition: EmptyCore.cpp:332
virtual InterfaceHandle registerTranslator(std::string_view translatorName, std::string_view message_type, std::string_view units) override
Definition: EmptyCore.cpp:193
virtual std::unique_ptr< Message > receive(InterfaceHandle destination) override
Definition: EmptyCore.cpp:413
virtual void dataLink(std::string_view source, std::string_view target) override
Definition: EmptyCore.cpp:366
virtual const std::string & getHandleName(InterfaceHandle handle) const override
Definition: EmptyCore.cpp:219
virtual void setLogFile(std::string_view lfile) override
Definition: EmptyCore.cpp:442
virtual const std::vector< std::shared_ptr< const SmallBuffer > > & getAllValues(InterfaceHandle handle) override
Definition: EmptyCore.cpp:293
virtual uint64_t receiveCount(InterfaceHandle destination) override
Definition: EmptyCore.cpp:408
virtual void addAlias(std::string_view interfaceKey, std::string_view alias) override
Definition: EmptyCore.cpp:365
virtual std::string query(std::string_view target, std::string_view queryStr, HelicsSequencingModes mode) override
Definition: EmptyCore.cpp:502
virtual const std::string & getExtractionType(InterfaceHandle handle) const override
Definition: EmptyCore.cpp:239
virtual void addDestinationFilterToEndpoint(std::string_view filter, std::string_view endpoint) override
Definition: EmptyCore.cpp:373
virtual InterfaceHandle registerCloningFilter(std::string_view filterName, std::string_view type_in, std::string_view type_out) override
Definition: EmptyCore.cpp:345
virtual int getErrorCode() const override
Definition: EmptyCore.cpp:86
virtual const std::string & getInterfaceInfo(InterfaceHandle handle) const override
Definition: EmptyCore.cpp:521
virtual iteration_time enterExecutingMode(LocalFederateId federateID, IterationRequest iterate=NO_ITERATION) override
Definition: EmptyCore.cpp:105
virtual void sendTo(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination) override
Definition: EmptyCore.cpp:380
virtual const std::string & getInjectionUnits(InterfaceHandle handle) const override
Definition: EmptyCore.cpp:224
virtual InterfaceHandle getEndpoint(LocalFederateId federateID, std::string_view name) const override
Definition: EmptyCore.cpp:320
virtual void linkEndpoints(std::string_view source, std::string_view dest) override
Definition: EmptyCore.cpp:363
virtual void sendToAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination, Time time) override
Definition: EmptyCore.cpp:387
virtual Time timeRequest(LocalFederateId federateID, Time next) override
Definition: EmptyCore.cpp:134
virtual void configure(std::string_view configureString) override
Definition: EmptyCore.cpp:23
virtual void sendAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, Time time) override
Definition: EmptyCore.cpp:397
virtual void addSourceFilterToEndpoint(std::string_view filter, std::string_view endpoint) override
Definition: EmptyCore.cpp:368
virtual std::string getErrorMessage() const override
Definition: EmptyCore.cpp:91
virtual InterfaceHandle getTranslator(std::string_view name) const override
Definition: EmptyCore.cpp:357
virtual int16_t getIntegerProperty(LocalFederateId federateID, int32_t property) const override
Definition: EmptyCore.cpp:171
virtual void closeHandle(InterfaceHandle handle) override
Definition: EmptyCore.cpp:255
virtual void sendCommand(std::string_view target, std::string_view commandStr, std::string_view source, HelicsSequencingModes mode) override
Definition: EmptyCore.cpp:514
virtual const std::string & getIdentifier() const override
Definition: EmptyCore.cpp:39
virtual void addDestinationTarget(InterfaceHandle handle, std::string_view dest, InterfaceType hint) override
Definition: EmptyCore.cpp:259
virtual void setLoggingCallback(LocalFederateId federateID, std::function< void(int, std::string_view, std::string_view)> logFunction) override
Definition: EmptyCore.cpp:454
virtual const std::string & getDestinationTargets(InterfaceHandle handle) const override
Definition: EmptyCore.cpp:273
virtual bool isConfigured() const override
Definition: EmptyCore.cpp:58
virtual void setFederateTag(LocalFederateId fid, std::string_view tag, std::string_view value) override
Definition: EmptyCore.cpp:546
virtual InterfaceHandle registerDataSink(LocalFederateId federateID, std::string_view name) override final
Definition: EmptyCore.cpp:326
virtual InterfaceHandle getFilter(std::string_view name) const override
Definition: EmptyCore.cpp:352
virtual bool waitForDisconnect(std::chrono::milliseconds msToWait=std::chrono::milliseconds(0)) const override
Definition: EmptyCore.cpp:51
EmptyCore() noexcept
Definition: EmptyCore.cpp:21
virtual void addSourceTarget(InterfaceHandle handle, std::string_view name, InterfaceType hint) override
Definition: EmptyCore.cpp:266
virtual void send(InterfaceHandle sourceHandle, const void *data, uint64_t length) override
Definition: EmptyCore.cpp:395
virtual InterfaceHandle registerFilter(std::string_view filterName, std::string_view type_in, std::string_view type_out) override
Definition: EmptyCore.cpp:338
virtual const std::string & getSourceTargets(InterfaceHandle handle) const override
Definition: EmptyCore.cpp:278
virtual std::pair< std::string, std::string > waitCommand(LocalFederateId federateID) override
Definition: EmptyCore.cpp:449
virtual void setHandleOption(InterfaceHandle handle, int32_t option, int32_t option_value) override
Definition: EmptyCore.cpp:244
virtual Time getTimeProperty(LocalFederateId federateID, int32_t property) const override
Definition: EmptyCore.cpp:166
virtual void sendMessage(InterfaceHandle sourceHandle, std::unique_ptr< Message > message) override
Definition: EmptyCore.cpp:404
virtual void setFlagOption(LocalFederateId federateID, int32_t flag, bool flagValue=true) override
Definition: EmptyCore.cpp:176
virtual InterfaceHandle registerTargetedEndpoint(LocalFederateId federateID, std::string_view name, std::string_view type) override
Definition: EmptyCore.cpp:313
virtual void addDependency(LocalFederateId federateID, std::string_view federateName) override
Definition: EmptyCore.cpp:378
virtual void setTimeProperty(LocalFederateId federateID, int32_t property, Time time) override
Definition: EmptyCore.cpp:162
virtual void configureFromVector(std::vector< std::string > args) override
Definition: EmptyCore.cpp:27
virtual void setLoggingLevel(int logLevel) override
Definition: EmptyCore.cpp:440
virtual void setIntegerProperty(LocalFederateId federateID, int32_t property, int16_t propertyValue) override
Definition: EmptyCore.cpp:156
virtual void removeTarget(InterfaceHandle handle, std::string_view targetToRemove) override
Definition: EmptyCore.cpp:257
virtual const std::string & getInterfaceTag(InterfaceHandle handle, std::string_view tag) const override
Definition: EmptyCore.cpp:528
virtual const std::vector< InterfaceHandle > & getValueUpdates(LocalFederateId federateID) override
Definition: EmptyCore.cpp:299
virtual InterfaceHandle registerInput(LocalFederateId federateID, std::string_view key, std::string_view type, std::string_view units) override
Definition: EmptyCore.cpp:185
virtual void setQueryCallback(LocalFederateId federateID, std::function< std::string(std::string_view)> queryFunction, int order) override
Definition: EmptyCore.cpp:475
virtual void processCommunications(LocalFederateId fedId, std::chrono::milliseconds msToWait) override final
Definition: EmptyCore.cpp:146
virtual void configureFromArgs(int argc, char *argv[]) override
Definition: EmptyCore.cpp:25
virtual bool connect() override
Definition: EmptyCore.cpp:29
virtual void makeConnections(const std::string &file) override
Definition: EmptyCore.cpp:361
virtual const std::string & getAddress() const override
Definition: EmptyCore.cpp:44
virtual LocalFederateId getFederateId(std::string_view name) const override
Definition: EmptyCore.cpp:124
virtual const std::string & getExtractionUnits(InterfaceHandle handle) const override
Definition: EmptyCore.cpp:229
virtual InterfaceHandle getPublication(LocalFederateId federateID, std::string_view key) const override
Definition: EmptyCore.cpp:213
virtual std::unique_ptr< Message > receiveAny(LocalFederateId federateID, InterfaceHandle &endpoint_id) override
Definition: EmptyCore.cpp:418
virtual uint64_t receiveCountAny(LocalFederateId federateID) override
Definition: EmptyCore.cpp:424
virtual bool getFlagOption(LocalFederateId federateID, int32_t flag) const override
Definition: EmptyCore.cpp:180
Definition: LocalFederateId.hpp:65
Definition: LocalFederateId.hpp:22
HelicsSequencingModes
Definition: helics_enums.h:425
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition: AsyncFedCallInfo.hpp:14
IterationRequest
Definition: CoreTypes.hpp:102
InterfaceType
Definition: CoreTypes.hpp:111
TimeRepresentation< count_time< 9 > > Time
Definition: helicsTime.hpp:27
Definition: helicsTime.hpp:43