libcyberradio 22.01.24
ConfigString.h
1/***************************************************************************
2 * \file ConfigString.h
3 * \brief Defines a string class that supports several non-string data
4 * types for value setting and retrieval.
5 * \author DA
6 * \copyright (c) 2018 CyberRadio Solutions, Inc. All rights reserved.
7 *
8 * \note Requires C++11 compiler support.
9 *
10 ***************************************************************************/
11
12#ifndef INCLUDED_LIBCYBERRADIO_DRIVER_CONFIGSTRING_H
13#define INCLUDED_LIBCYBERRADIO_DRIVER_CONFIGSTRING_H
14
15#include <string>
16
17
21namespace LibCyberRadio
22{
26 namespace Driver
27 {
39 class ConfigString : public std::string
40 {
41 public:
45 ConfigString() : std::string() {}
50 ConfigString(const std::string& str) : std::string(str) {}
57 ConfigString(const std::string& str, size_t pos, size_t len = npos) :
58 std::string(str, pos, len) {}
59
63 ConfigString(const char* s) : std::string(s) {}
69 ConfigString(const char* s, size_t n) : std::string(s, n) {}
73 ConfigString(size_t n, char c) : std::string(n, c) {}
79 template <class InputIterator>
80 ConfigString(InputIterator first, InputIterator last) :
81 std::string(first, last) {}
82
86 ConfigString(std::initializer_list<char> il) : std::string(il) {}
91 ConfigString(std::string&& str) noexcept : std::string(str) {}
96 ConfigString(int i) : std::string( std::to_string(i) ) {}
101 ConfigString(unsigned int i) : std::string( std::to_string(i) ) {}
106 ConfigString(long l) : std::string( std::to_string(l) ) {}
111 ConfigString(bool b) : std::string( b ? "1" : "0" ) {}
116 ConfigString(float f) : std::string( std::to_string(f) ) {}
121 ConfigString(double f) : std::string( std::to_string(f) ) {}
125 virtual ~ConfigString() {}
130 ConfigString& operator=(const std::string& s);
135 ConfigString& operator=(const char* s);
140 ConfigString& operator=(int i);
145 ConfigString& operator=(unsigned int i);
150 ConfigString& operator=(long l);
155 ConfigString& operator=(bool b);
160 ConfigString& operator=(float f);
165 ConfigString& operator=(double f);
170 int asInt() const;
175 unsigned int asUInt() const;
180 long asLong() const;
185 bool asBool() const;
190 float asFloat() const;
195 double asDouble() const;
196
197 }; // class ConfigString
198
199 } // namespace Driver
200
201} // namespace LibCyberRadio
202
203#endif /* INCLUDED_LIBCYBERRADIO_DRIVER_CONFIGSTRING_H */
Configuration value string class.
ConfigString(bool b)
Constructs a ConfigString object.
ConfigString(unsigned int i)
Constructs a ConfigString object.
ConfigString(long l)
Constructs a ConfigString object.
ConfigString(std::string &&str) noexcept
Move constructor.
ConfigString(int i)
Constructs a ConfigString object.
long asLong() const
Retrieves a value from this object.
ConfigString(const std::string &str)
Constructs a ConfigString object from a string.
ConfigString(double f)
Constructs a ConfigString object.
ConfigString(size_t n, char c)
Constructs a ConfigString object from a fill character.
ConfigString(const std::string &str, size_t pos, size_t len=npos)
Constructs a ConfigString object from a substring.
ConfigString(const char *s, size_t n)
Constructs a ConfigString object from a buffer.
ConfigString & operator=(const std::string &s)
Assigns a value to this object.
float asFloat() const
Retrieves a value from this object.
bool asBool() const
Retrieves a value from this object.
int asInt() const
Retrieves a value from this object.
double asDouble() const
Retrieves a value from this object.
unsigned int asUInt() const
Retrieves a value from this object.
ConfigString()
Constructs an empty ConfigString object.
ConfigString(std::initializer_list< char > il)
Constructs a ConfigString object from an initializer list.
ConfigString(const char *s)
Constructs a ConfigString object from a string literal.
ConfigString(float f)
Constructs a ConfigString object.
virtual ~ConfigString()
Destroys a ConfigString object.
ConfigString(InputIterator first, InputIterator last)
Constructs a ConfigString object from a range.
Provides programming elements for driving CRS NDR-class radios.
Defines functionality for LibCyberRadio applications.
Definition App.h:24