helics  3.5.2
cpp98/Translator.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 #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 
16 namespace helicscpp {
18 class Translator {
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; }
38  bool isValid() const { return (helicsTranslatorIsValid(translator) == HELICS_TRUE); }
40  const char* getName() const { return helicsTranslatorGetName(translator); }
45  void set(const std::string& property, double val)
46  {
47  helicsTranslatorSet(translator, property.c_str(), val, hThrowOnError());
48  }
53  void setString(const std::string& property, const std::string& val)
54  {
55  helicsTranslatorSetString(translator, property.c_str(), val.c_str(), hThrowOnError());
56  }
57 
60  void addDestinationEndpoint(const std::string& dest)
61  {
63  }
64 
67  void addSourceEndpoint(const std::string& source)
68  {
70  }
71 
74  void addDestinationInput(const std::string& dest)
75  {
77  }
78 
81  void addSourcePublication(const std::string& source)
82  {
84  }
86  void removeTarget(const std::string& dest)
87  {
89  }
91  const char* getInfo() const { return helicsTranslatorGetInfo(translator); }
93  void setInfo(const std::string& info)
94  {
95  helicsTranslatorSetInfo(translator, info.c_str(), HELICS_IGNORE_ERROR);
96  }
98  const char* getTag(const std::string& tagname) const
99  {
100  return helicsTranslatorGetTag(translator, tagname.c_str());
101  }
103  void setTag(const std::string& tagname, const std::string& tagvalue)
104  {
105  helicsTranslatorSetTag(translator, tagname.c_str(), tagvalue.c_str(), HELICS_IGNORE_ERROR);
106  }
107  void setOption(int32_t option, int32_t value = 1)
108  {
109  helicsTranslatorSetOption(translator, option, value, HELICS_IGNORE_ERROR);
110  }
111  int32_t getOption(int32_t option) { return helicsTranslatorGetOption(translator, option); }
112 
113  /*
114  void setCallback(HelicsMessage (*translatorCall)(HelicsMessage message, void* userData),
115  void* userData)
116  {
117  helicsTranslatorSetCustomCallback(translator, translatorCall, userData,
118  HELICS_IGNORE_ERROR);
119  }
120  */
121  protected:
123 };
124 
125 } // namespace helicscpp
126 #endif
void helicsTranslatorSetString(HelicsTranslator trans, const char *prop, const char *val, HelicsError *err)
Definition: TranslatorExport.cpp:274
void helicsTranslatorAddDestinationEndpoint(HelicsTranslator trans, const char *ept, HelicsError *err)
Definition: TranslatorExport.cpp:323
const char * helicsTranslatorGetName(HelicsTranslator trans)
Definition: TranslatorExport.cpp:249
void helicsTranslatorAddInputTarget(HelicsTranslator trans, const char *input, HelicsError *err)
Definition: TranslatorExport.cpp:289
void helicsTranslatorAddPublicationTarget(HelicsTranslator trans, const char *pub, HelicsError *err)
Definition: TranslatorExport.cpp:306
void helicsTranslatorSet(HelicsTranslator trans, const char *prop, double val, HelicsError *err)
Definition: TranslatorExport.cpp:259
HelicsBool helicsTranslatorIsValid(HelicsTranslator trans)
Definition: TranslatorExport.cpp:239
void helicsTranslatorAddSourceEndpoint(HelicsTranslator trans, const char *ept, HelicsError *err)
Definition: TranslatorExport.cpp:340
void * HelicsTranslator
Definition: api-data.h:48
const HelicsBool HELICS_TRUE
Definition: api-data.h:114
Definition: cpp98/Translator.hpp:18
void setString(const std::string &property, const std::string &val)
Definition: cpp98/Translator.hpp:53
void setInfo(const std::string &info)
Definition: cpp98/Translator.hpp:93
HelicsTranslator translator
the reference to the underlying HelicsTranslator object
Definition: cpp98/Translator.hpp:122
void set(const std::string &property, double val)
Definition: cpp98/Translator.hpp:45
void setTag(const std::string &tagname, const std::string &tagvalue)
Definition: cpp98/Translator.hpp:103
Translator & operator=(const Translator &translatorer)
Definition: cpp98/Translator.hpp:27
const char * getInfo() const
Definition: cpp98/Translator.hpp:91
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:81
Translator() HELICS_NOTHROW
Definition: cpp98/Translator.hpp:23
bool isValid() const
Definition: cpp98/Translator.hpp:38
void addSourceEndpoint(const std::string &source)
Definition: cpp98/Translator.hpp:67
const char * getTag(const std::string &tagname) const
Definition: cpp98/Translator.hpp:98
void addDestinationEndpoint(const std::string &dest)
Definition: cpp98/Translator.hpp:60
void removeTarget(const std::string &dest)
Definition: cpp98/Translator.hpp:86
const char * getName() const
Definition: cpp98/Translator.hpp:40
Translator(const Translator &trans)
Definition: cpp98/Translator.hpp:25
void addDestinationInput(const std::string &dest)
Definition: cpp98/Translator.hpp:74
Definition: helicsExceptions.hpp:38
void helicsTranslatorSetOption(HelicsTranslator trans, int option, int value, HelicsError *err)
Definition: TranslatorExport.cpp:440
void helicsTranslatorSetTag(HelicsTranslator trans, const char *tagname, const char *tagvalue, HelicsError *err)
Definition: TranslatorExport.cpp:424
int helicsTranslatorGetOption(HelicsTranslator trans, int option)
Definition: TranslatorExport.cpp:456
const char * helicsTranslatorGetInfo(HelicsTranslator trans)
Definition: TranslatorExport.cpp:374
void helicsTranslatorRemoveTarget(HelicsTranslator trans, const char *target, HelicsError *err)
Definition: TranslatorExport.cpp:357
const char * helicsTranslatorGetTag(HelicsTranslator trans, const char *tagname)
Definition: TranslatorExport.cpp:407
void helicsTranslatorSetInfo(HelicsTranslator trans, const char *info, HelicsError *err)
Definition: TranslatorExport.cpp:391
Definition: cpp98/Broker.hpp:18