helics 3.7.0
Loading...
Searching...
No Matches
cpp98/Translator.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#ifndef HELICS_CPP98_TRANSLATOR_HPP_
8#define HELICS_CPP98_TRANSLATOR_HPP_
9
10#include "DataBuffer.hpp"
11#include "helics/helics.h"
12#include "helicsExceptions.hpp"
13
14#include <string>
15
16namespace helicscpp {
19 public:
21 explicit Translator(HelicsTranslator htrans) HELICS_NOTHROW: translator(htrans) {}
23 Translator() HELICS_NOTHROW: translator(HELICS_NULL_POINTER) {}
25 Translator(const Translator& trans): translator(trans.translator) {}
27 Translator& operator=(const Translator& translatorer)
28 {
29 translator = translatorer.translator;
30 return *this;
31 }
32
34 operator HelicsTranslator() const { return translator; }
36 HELICS_NODISCARD HelicsTranslator baseObject() const { return translator; }
38 HELICS_NODISCARD bool isValid() const
39 {
40 return (helicsTranslatorIsValid(translator) == HELICS_TRUE);
41 }
43 HELICS_NODISCARD const char* getName() const { return helicsTranslatorGetName(translator); }
48 void set(const std::string& property, double val)
49 {
50 helicsTranslatorSet(translator, property.c_str(), val, hThrowOnError());
51 }
56 void setString(const std::string& property, const std::string& val)
57 {
58 helicsTranslatorSetString(translator, property.c_str(), val.c_str(), hThrowOnError());
59 }
60
63 void addDestinationEndpoint(const std::string& dest)
64 {
65 helicsTranslatorAddDestinationEndpoint(translator, dest.c_str(), hThrowOnError());
66 }
67
70 void addSourceEndpoint(const std::string& source)
71 {
72 helicsTranslatorAddSourceEndpoint(translator, source.c_str(), hThrowOnError());
73 }
74
77 void addDestinationInput(const std::string& dest)
78 {
79 helicsTranslatorAddInputTarget(translator, dest.c_str(), hThrowOnError());
80 }
81
84 void addSourcePublication(const std::string& source)
85 {
86 helicsTranslatorAddPublicationTarget(translator, source.c_str(), hThrowOnError());
87 }
89 void removeTarget(const std::string& dest)
90 {
92 }
94 HELICS_NODISCARD const char* getInfo() const { return helicsTranslatorGetInfo(translator); }
96 void setInfo(const std::string& info)
97 {
98 helicsTranslatorSetInfo(translator, info.c_str(), HELICS_IGNORE_ERROR);
99 }
101 HELICS_NODISCARD const char* getTag(const std::string& tagname) const
102 {
103 return helicsTranslatorGetTag(translator, tagname.c_str());
104 }
106 void setTag(const std::string& tagname, const std::string& tagvalue)
107 {
108 helicsTranslatorSetTag(translator, tagname.c_str(), tagvalue.c_str(), HELICS_IGNORE_ERROR);
109 }
110 void setOption(int32_t option, int32_t value = 1)
111 {
112 helicsTranslatorSetOption(translator, option, value, HELICS_IGNORE_ERROR);
113 }
114 int32_t getOption(int32_t option) { return helicsTranslatorGetOption(translator, option); }
115
116 /*
117 void setCallback(HelicsMessage (*translatorCall)(HelicsMessage message, void* userData),
118 void* userData)
119 {
120 helicsTranslatorSetCustomCallback(translator, translatorCall, userData,
121 HELICS_IGNORE_ERROR);
122 }
123 */
124 protected:
126};
127
128} // namespace helicscpp
129#endif
void * HelicsTranslator
Definition api-data.h:48
const HelicsBool HELICS_TRUE
Definition api-data.h:122
Definition cpp98/Translator.hpp:18
HELICS_NODISCARD const char * getTag(const std::string &tagname) const
Definition cpp98/Translator.hpp:101
void setString(const std::string &property, const std::string &val)
Definition cpp98/Translator.hpp:56
void setInfo(const std::string &info)
Definition cpp98/Translator.hpp:96
HelicsTranslator translator
the reference to the underlying HelicsTranslator object
Definition cpp98/Translator.hpp:125
void set(const std::string &property, double val)
Definition cpp98/Translator.hpp:48
void setTag(const std::string &tagname, const std::string &tagvalue)
Definition cpp98/Translator.hpp:106
Translator & operator=(const Translator &translatorer)
Definition cpp98/Translator.hpp:27
HELICS_NODISCARD const char * getName() const
Definition cpp98/Translator.hpp:43
HELICS_NODISCARD bool isValid() const
Definition cpp98/Translator.hpp:38
HELICS_NODISCARD HelicsTranslator baseObject() const
Definition cpp98/Translator.hpp:36
Translator(HelicsTranslator htrans) HELICS_NOTHROW
Definition cpp98/Translator.hpp:21
void addSourcePublication(const std::string &source)
Definition cpp98/Translator.hpp:84
Translator() HELICS_NOTHROW
Definition cpp98/Translator.hpp:23
void addSourceEndpoint(const std::string &source)
Definition cpp98/Translator.hpp:70
HELICS_NODISCARD const char * getInfo() const
Definition cpp98/Translator.hpp:94
void addDestinationEndpoint(const std::string &dest)
Definition cpp98/Translator.hpp:63
void removeTarget(const std::string &dest)
Definition cpp98/Translator.hpp:89
Translator(const Translator &trans)
Definition cpp98/Translator.hpp:25
void addDestinationInput(const std::string &dest)
Definition cpp98/Translator.hpp:77
Definition helicsExceptions.hpp:38
void helicsTranslatorSetOption(HelicsTranslator trans, int option, int value, HelicsError *err)
Definition TranslatorExport.cpp:442
const char * helicsTranslatorGetInfo(HelicsTranslator trans)
Definition TranslatorExport.cpp:376
void helicsTranslatorSetTag(HelicsTranslator trans, const char *tagname, const char *tagvalue, HelicsError *err)
Definition TranslatorExport.cpp:426
int helicsTranslatorGetOption(HelicsTranslator trans, int option)
Definition TranslatorExport.cpp:458
const char * helicsTranslatorGetTag(HelicsTranslator trans, const char *tagname)
Definition TranslatorExport.cpp:409
void helicsTranslatorRemoveTarget(HelicsTranslator trans, const char *target, HelicsError *err)
Definition TranslatorExport.cpp:359
void helicsTranslatorSetInfo(HelicsTranslator trans, const char *info, HelicsError *err)
Definition TranslatorExport.cpp:393
Definition cpp98/Broker.hpp:18