summaryrefslogtreecommitdiff
path: root/src/confpair.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/confpair.h')
-rw-r--r--src/confpair.h48
1 files changed, 47 insertions, 1 deletions
diff --git a/src/confpair.h b/src/confpair.h
index 5be33c8..56eb06e 100644
--- a/src/confpair.h
+++ b/src/confpair.h
@@ -3,11 +3,14 @@
3 3
4#include <stdint.h> 4#include <stdint.h>
5#include <string> 5#include <string>
6#include <sstream>
7#include "confpairbase.h"
8
6/** 9/**
7 * 10 *
8 */ 11 */
9template<class T> 12template<class T>
10class ConfPair 13class ConfPair : public ConfPairBase
11{ 14{
12public: 15public:
13 ConfPair( const std::string &sName ) : 16 ConfPair( const std::string &sName ) :
@@ -27,9 +30,52 @@ public:
27 return sName; 30 return sName;
28 } 31 }
29 32
33 virtual void setFromString( const std::string &sStr )
34 {
35 std::stringstream(sStr) >> tValue;
36 }
37
38 virtual std::string getAsString()
39 {
40 std::stringstream tmp;
41 tmp << tValue;
42 return tmp.str();
43 }
44
30private: 45private:
31 std::string sName; 46 std::string sName;
32 T tValue; 47 T tValue;
33}; 48};
34 49
50template<>
51void ConfPair<std::string>::setFromString( const std::string &sStr )
52{
53 tValue = sStr;
54}
55
56template<>
57std::string ConfPair<std::string>::getAsString()
58{
59 return tValue;
60}
61
62template<>
63void ConfPair<bool>::setFromString( const std::string &sStr )
64{
65 if( !strcasecmp( sStr.c_str(), "true" ) ||
66 !strcasecmp( sStr.c_str(), "yes" ) ||
67 !strcasecmp( sStr.c_str(), "on" ) )
68 tValue = true;
69 else
70 tValue = false;
71}
72
73template<>
74std::string ConfPair<bool>::getAsString()
75{
76 if( tValue == true )
77 return "True";
78 return "False";
79}
80
35#endif 81#endif