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 
21 namespace 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) {}
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) {}
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 */
ConfigString(const std::string &str)
Constructs a ConfigString object from a string.
Definition: ConfigString.h:50
Configuration value string class.
Definition: ConfigString.h:39
ConfigString(double f)
Constructs a ConfigString object.
Definition: ConfigString.h:121
ConfigString(long l)
Constructs a ConfigString object.
Definition: ConfigString.h:106
ConfigString(unsigned int i)
Constructs a ConfigString object.
Definition: ConfigString.h:101
ConfigString(InputIterator first, InputIterator last)
Constructs a ConfigString object from a range.
Definition: ConfigString.h:80
ConfigString(const char *s, size_t n)
Constructs a ConfigString object from a buffer.
Definition: ConfigString.h:69
long asLong() const
Retrieves a value from this object.
bool asBool() const
Retrieves a value from this object.
ConfigString(std::string &&str) noexcept
Move constructor.
Definition: ConfigString.h:91
ConfigString(bool b)
Constructs a ConfigString object.
Definition: ConfigString.h:111
ConfigString(int i)
Constructs a ConfigString object.
Definition: ConfigString.h:96
ConfigString()
Constructs an empty ConfigString object.
Definition: ConfigString.h:45
float asFloat() 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.
ConfigString(size_t n, char c)
Constructs a ConfigString object from a fill character.
Definition: ConfigString.h:73
ConfigString(const std::string &str, size_t pos, size_t len=npos)
Constructs a ConfigString object from a substring.
Definition: ConfigString.h:57
ConfigString & operator=(const std::string &s)
Assigns a value to this object.
Defines functionality for LibCyberRadio applications.
Definition: App.h:23
unsigned int asUInt() const
Retrieves a value from this object.
virtual ~ConfigString()
Destroys a ConfigString object.
Definition: ConfigString.h:125
ConfigString(const char *s)
Constructs a ConfigString object from a string literal.
Definition: ConfigString.h:63
ConfigString(float f)
Constructs a ConfigString object.
Definition: ConfigString.h:116
ConfigString(std::initializer_list< char > il)
Constructs a ConfigString object from an initializer list.
Definition: ConfigString.h:86