helics 3.7.0
Loading...
Searching...
No Matches
TranslatorOperations.hpp
Go to the documentation of this file.
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
13#include "../common/GuardedTypes.hpp"
14#include "../core/core-data.hpp"
15#include "../core/helicsTime.hpp"
16
17#include <atomic>
18#include <functional>
19#include <memory>
20#include <set>
21#include <string>
22#include <utility>
23#include <vector>
24
25namespace helics {
26class Core;
27
30 public:
33
34 private:
35 virtual SmallBuffer convertToValue(std::unique_ptr<Message> message) override;
36 virtual std::unique_ptr<Message> convertToMessage(const SmallBuffer& value) override;
37};
38
42 public:
45
46 private:
47 virtual SmallBuffer convertToValue(std::unique_ptr<Message> message) override;
48 virtual std::unique_ptr<Message> convertToMessage(const SmallBuffer& value) override;
49};
50
53 public:
56
59 std::function<SmallBuffer(std::unique_ptr<Message> message)> userToValueFunction)
60 {
61 toValueFunction = std::move(userToValueFunction);
62 }
63
66 std::function<std::unique_ptr<Message>(const SmallBuffer& value)> userToMessageFunction)
67 {
68 toMessageFunction = std::move(userToMessageFunction);
69 }
70
71 private:
73 std::function<SmallBuffer(std::unique_ptr<Message> message)> toValueFunction;
75 std::function<std::unique_ptr<Message>(const SmallBuffer& value)> toMessageFunction;
76
77 virtual SmallBuffer convertToValue(std::unique_ptr<Message> message) override;
78 virtual std::unique_ptr<Message> convertToMessage(const SmallBuffer& value) override;
79};
80
83 public:
84 TranslatorOperations() = default;
85 virtual ~TranslatorOperations() = default;
86 // still figuring out if these functions have a use or not
89 TranslatorOperations& operator=(const TranslatorOperations& fo) = delete;
90 TranslatorOperations& operator=(TranslatorOperations&& fo) = delete;
91
96 virtual void set(std::string_view property, double val);
101 virtual void setString(std::string_view property, std::string_view val);
102 virtual std::shared_ptr<TranslatorOperator> getOperator() = 0;
103};
104
107 private:
108 std::shared_ptr<TranslatorOperator> to;
109
110 public:
111 explicit CustomTranslatorOperation(std::shared_ptr<TranslatorOperator> op): to(std::move(op)) {}
112 virtual std::shared_ptr<TranslatorOperator> getOperator() override { return to; }
113};
114
117 private:
118 std::shared_ptr<JsonTranslatorOperator> to;
119
120 public:
122 virtual std::shared_ptr<TranslatorOperator> getOperator() override
123 {
124 return std::static_pointer_cast<TranslatorOperator>(to);
125 }
126};
127
130 private:
131 std::shared_ptr<BinaryTranslatorOperator> to;
132
133 public:
136
137 virtual std::shared_ptr<TranslatorOperator> getOperator() override
138 {
139 return std::static_pointer_cast<TranslatorOperator>(to);
140 }
141};
142
143} // namespace helics
Definition TranslatorOperations.hpp:129
BinaryTranslatorOperation()
Definition TranslatorOperations.cpp:91
Definition TranslatorOperations.hpp:41
Definition TranslatorOperations.hpp:106
Definition TranslatorOperations.hpp:52
void setToValueFunction(std::function< SmallBuffer(std::unique_ptr< Message > message)> userToValueFunction)
Definition TranslatorOperations.hpp:58
void setToMessageFunction(std::function< std::unique_ptr< Message >(const SmallBuffer &value)> userToMessageFunction)
Definition TranslatorOperations.hpp:65
Definition TranslatorOperations.hpp:116
Definition TranslatorOperations.hpp:29
Definition SmallBuffer.hpp:25
Definition TranslatorOperations.hpp:82
virtual void setString(std::string_view property, std::string_view val)
Definition TranslatorOperations.cpp:79
virtual void set(std::string_view property, double val)
Definition TranslatorOperations.cpp:71
Definition core-data.hpp:131
the main namespace for the helics co-simulation library User functions will be in the helics namespac...
Definition AsyncFedCallInfo.hpp:14