helics 3.7.0
Loading...
Searching...
No Matches
EmptyCore.hpp
1/*
2Copyright (c) 2017-2026,
3Battelle Memorial Institute; Lawrence Livermore National Security, LLC; Alliance for Energy
4Innovation LLC. See the top-level NOTICE for additional details. All rights reserved.
5SPDX-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
16namespace helics {
17
19class 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;
121 std::string_view name) const override;
122
124 std::string_view name) override final;
125
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:128
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:474
virtual InterfaceHandle registerPublication(LocalFederateId federateID, std::string_view key, std::string_view type, std::string_view units) override
Definition EmptyCore.cpp:209
virtual const std::shared_ptr< const SmallBuffer > & getValue(InterfaceHandle handle, uint32_t *inputIndex) override
Definition EmptyCore.cpp:289
virtual void logMessage(LocalFederateId federateID, int logLevel, std::string_view messageToLog) override
Definition EmptyCore.cpp:433
virtual int32_t getFederationSize() override
Definition EmptyCore.cpp:133
virtual LocalFederateId registerFederate(std::string_view name, const CoreFederateInfo &info) override
Definition EmptyCore.cpp:115
virtual void setTranslatorOperator(InterfaceHandle translator, std::shared_ptr< TranslatorOperator > callback) override
Definition EmptyCore.cpp:469
virtual bool isConnected() const override
Definition EmptyCore.cpp:38
virtual bool enterInitializingMode(LocalFederateId federateID, IterationRequest request) override
Definition EmptyCore.cpp:104
virtual void setGlobal(std::string_view valueName, std::string_view value) override
Definition EmptyCore.cpp:516
virtual InterfaceHandle getInput(LocalFederateId federateID, std::string_view key) const override
Definition EmptyCore.cpp:204
virtual const std::string & getFederateName(LocalFederateId federateID) const override
Definition EmptyCore.cpp:121
virtual const std::string & getInjectionType(InterfaceHandle handle) const override
Definition EmptyCore.cpp:238
virtual void disconnect() override
Definition EmptyCore.cpp:53
virtual Time getCurrentTime(LocalFederateId federateID) const override
Definition EmptyCore.cpp:155
virtual void finalize(LocalFederateId federateID) override
Definition EmptyCore.cpp:100
virtual void setInterfaceInfo(InterfaceHandle handle, std::string_view info) override
Definition EmptyCore.cpp:530
virtual void setFilterOperator(InterfaceHandle filter, std::shared_ptr< FilterOperator > callback) override
Definition EmptyCore.cpp:464
virtual const std::string & getFederateTag(LocalFederateId fid, std::string_view tag) const override
Definition EmptyCore.cpp:544
virtual iteration_time requestTimeIterative(LocalFederateId federateID, Time next, IterationRequest iterate) override
Definition EmptyCore.cpp:143
virtual void setCoreReadyToInit() override
Definition EmptyCore.cpp:102
virtual void setInterfaceTag(InterfaceHandle handle, std::string_view tag, std::string_view value) override
Definition EmptyCore.cpp:538
virtual InterfaceHandle registerEndpoint(LocalFederateId federateID, std::string_view name, std::string_view type) override
Definition EmptyCore.cpp:310
virtual std::pair< std::string, std::string > getCommand(LocalFederateId federateID) override
Definition EmptyCore.cpp:448
virtual void setValue(InterfaceHandle handle, const char *data, uint64_t len) override
Definition EmptyCore.cpp:287
virtual int32_t getHandleOption(InterfaceHandle handle, int32_t option) const override
Definition EmptyCore.cpp:254
virtual bool isOpenToNewFederates() const override
Definition EmptyCore.cpp:67
virtual InterfaceHandle getDataSink(LocalFederateId federateID, std::string_view name) const override final
Definition EmptyCore.cpp:336
virtual InterfaceHandle registerTranslator(std::string_view translatorName, std::string_view message_type, std::string_view units) override
Definition EmptyCore.cpp:197
virtual std::unique_ptr< Message > receive(InterfaceHandle destination) override
Definition EmptyCore.cpp:417
virtual void dataLink(std::string_view source, std::string_view target) override
Definition EmptyCore.cpp:370
virtual const std::string & getHandleName(InterfaceHandle handle) const override
Definition EmptyCore.cpp:223
virtual void setLogFile(std::string_view lfile) override
Definition EmptyCore.cpp:446
virtual const std::vector< std::shared_ptr< const SmallBuffer > > & getAllValues(InterfaceHandle handle) override
Definition EmptyCore.cpp:297
virtual uint64_t receiveCount(InterfaceHandle destination) override
Definition EmptyCore.cpp:412
virtual void addAlias(std::string_view interfaceKey, std::string_view alias) override
Definition EmptyCore.cpp:369
virtual std::string query(std::string_view target, std::string_view queryStr, HelicsSequencingModes mode) override
Definition EmptyCore.cpp:506
virtual const std::string & getExtractionType(InterfaceHandle handle) const override
Definition EmptyCore.cpp:243
virtual void addDestinationFilterToEndpoint(std::string_view filter, std::string_view endpoint) override
Definition EmptyCore.cpp:377
virtual InterfaceHandle registerCloningFilter(std::string_view filterName, std::string_view type_in, std::string_view type_out) override
Definition EmptyCore.cpp:349
virtual int getErrorCode() const override
Definition EmptyCore.cpp:90
virtual const std::string & getInterfaceInfo(InterfaceHandle handle) const override
Definition EmptyCore.cpp:525
virtual iteration_time enterExecutingMode(LocalFederateId federateID, IterationRequest iterate=NO_ITERATION) override
Definition EmptyCore.cpp:109
virtual void sendTo(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination) override
Definition EmptyCore.cpp:384
virtual const std::string & getInjectionUnits(InterfaceHandle handle) const override
Definition EmptyCore.cpp:228
virtual InterfaceHandle getEndpoint(LocalFederateId federateID, std::string_view name) const override
Definition EmptyCore.cpp:324
virtual void linkEndpoints(std::string_view source, std::string_view dest) override
Definition EmptyCore.cpp:367
virtual void sendToAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, std::string_view destination, Time time) override
Definition EmptyCore.cpp:391
virtual Time timeRequest(LocalFederateId federateID, Time next) override
Definition EmptyCore.cpp:138
virtual void configure(std::string_view configureString) override
Definition EmptyCore.cpp:27
virtual void sendAt(InterfaceHandle sourceHandle, const void *data, uint64_t length, Time time) override
Definition EmptyCore.cpp:401
virtual void addSourceFilterToEndpoint(std::string_view filter, std::string_view endpoint) override
Definition EmptyCore.cpp:372
virtual std::string getErrorMessage() const override
Definition EmptyCore.cpp:95
virtual InterfaceHandle getTranslator(std::string_view name) const override
Definition EmptyCore.cpp:361
virtual int16_t getIntegerProperty(LocalFederateId federateID, int32_t property) const override
Definition EmptyCore.cpp:175
virtual void closeHandle(InterfaceHandle handle) override
Definition EmptyCore.cpp:259
virtual void sendCommand(std::string_view target, std::string_view commandStr, std::string_view source, HelicsSequencingModes mode) override
Definition EmptyCore.cpp:518
virtual const std::string & getIdentifier() const override
Definition EmptyCore.cpp:43
virtual void addDestinationTarget(InterfaceHandle handle, std::string_view dest, InterfaceType hint) override
Definition EmptyCore.cpp:263
virtual void setLoggingCallback(LocalFederateId federateID, std::function< void(int, std::string_view, std::string_view)> logFunction) override
Definition EmptyCore.cpp:458
virtual const std::string & getDestinationTargets(InterfaceHandle handle) const override
Definition EmptyCore.cpp:277
virtual bool isConfigured() const override
Definition EmptyCore.cpp:62
virtual void setFederateTag(LocalFederateId fid, std::string_view tag, std::string_view value) override
Definition EmptyCore.cpp:550
virtual InterfaceHandle registerDataSink(LocalFederateId federateID, std::string_view name) override final
Definition EmptyCore.cpp:330
virtual InterfaceHandle getFilter(std::string_view name) const override
Definition EmptyCore.cpp:356
virtual bool waitForDisconnect(std::chrono::milliseconds msToWait=std::chrono::milliseconds(0)) const override
Definition EmptyCore.cpp:55
EmptyCore() noexcept
Definition EmptyCore.cpp:25
virtual void addSourceTarget(InterfaceHandle handle, std::string_view name, InterfaceType hint) override
Definition EmptyCore.cpp:270
virtual void send(InterfaceHandle sourceHandle, const void *data, uint64_t length) override
Definition EmptyCore.cpp:399
virtual InterfaceHandle registerFilter(std::string_view filterName, std::string_view type_in, std::string_view type_out) override
Definition EmptyCore.cpp:342
virtual const std::string & getSourceTargets(InterfaceHandle handle) const override
Definition EmptyCore.cpp:282
virtual std::pair< std::string, std::string > waitCommand(LocalFederateId federateID) override
Definition EmptyCore.cpp:453
virtual void setHandleOption(InterfaceHandle handle, int32_t option, int32_t option_value) override
Definition EmptyCore.cpp:248
virtual Time getTimeProperty(LocalFederateId federateID, int32_t property) const override
Definition EmptyCore.cpp:170
virtual void sendMessage(InterfaceHandle sourceHandle, std::unique_ptr< Message > message) override
Definition EmptyCore.cpp:408
virtual void setFlagOption(LocalFederateId federateID, int32_t flag, bool flagValue=true) override
Definition EmptyCore.cpp:180
virtual InterfaceHandle registerTargetedEndpoint(LocalFederateId federateID, std::string_view name, std::string_view type) override
Definition EmptyCore.cpp:317
virtual void addDependency(LocalFederateId federateID, std::string_view federateName) override
Definition EmptyCore.cpp:382
virtual void setTimeProperty(LocalFederateId federateID, int32_t property, Time time) override
Definition EmptyCore.cpp:166
virtual void configureFromVector(std::vector< std::string > args) override
Definition EmptyCore.cpp:31
virtual void setLoggingLevel(int logLevel) override
Definition EmptyCore.cpp:444
virtual void setIntegerProperty(LocalFederateId federateID, int32_t property, int16_t propertyValue) override
Definition EmptyCore.cpp:160
virtual void removeTarget(InterfaceHandle handle, std::string_view targetToRemove) override
Definition EmptyCore.cpp:261
virtual const std::string & getInterfaceTag(InterfaceHandle handle, std::string_view tag) const override
Definition EmptyCore.cpp:532
virtual const std::vector< InterfaceHandle > & getValueUpdates(LocalFederateId federateID) override
Definition EmptyCore.cpp:303
virtual InterfaceHandle registerInput(LocalFederateId federateID, std::string_view key, std::string_view type, std::string_view units) override
Definition EmptyCore.cpp:189
virtual void setQueryCallback(LocalFederateId federateID, std::function< std::string(std::string_view)> queryFunction, int order) override
Definition EmptyCore.cpp:479
virtual void processCommunications(LocalFederateId fedId, std::chrono::milliseconds msToWait) override final
Definition EmptyCore.cpp:150
virtual void configureFromArgs(int argc, char *argv[]) override
Definition EmptyCore.cpp:29
virtual bool connect() override
Definition EmptyCore.cpp:33
virtual void makeConnections(const std::string &file) override
Definition EmptyCore.cpp:365
virtual const std::string & getAddress() const override
Definition EmptyCore.cpp:48
virtual LocalFederateId getFederateId(std::string_view name) const override
Definition EmptyCore.cpp:128
virtual const std::string & getExtractionUnits(InterfaceHandle handle) const override
Definition EmptyCore.cpp:233
virtual InterfaceHandle getPublication(LocalFederateId federateID, std::string_view key) const override
Definition EmptyCore.cpp:217
virtual std::unique_ptr< Message > receiveAny(LocalFederateId federateID, InterfaceHandle &endpoint_id) override
Definition EmptyCore.cpp:422
virtual uint64_t receiveCountAny(LocalFederateId federateID) override
Definition EmptyCore.cpp:428
virtual bool getFlagOption(LocalFederateId federateID, int32_t flag) const override
Definition EmptyCore.cpp:184
Definition LocalFederateId.hpp:65
Definition LocalFederateId.hpp:22
HelicsSequencingModes
Definition helics_enums.h:429
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:103
InterfaceType
Definition CoreTypes.hpp:112
TimeRepresentation< count_time< 9 > > Time
Definition helicsTime.hpp:27
Definition helicsTime.hpp:46