00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CStringList_H
00029 #define CStringList_H
00030
00031 #include <mrpt/utils/utils_defs.h>
00032 #include <mrpt/utils/CSerializable.h>
00033
00034 namespace mrpt
00035 {
00036 namespace utils
00037 {
00038
00039 DEFINE_SERIALIZABLE_PRE( CStringList )
00040
00041
00049 class MRPTDLLIMPEXP CStringList : public mrpt::utils::CSerializable
00050 {
00051
00052 DEFINE_SERIALIZABLE( CStringList )
00053
00054 protected:
00057 std::deque<std::string> m_strings;
00058
00059 public:
00062 CStringList();
00063
00066 CStringList(const std::string& text);
00067
00071 void add( const std::string &str );
00072
00074 CStringList & operator << (const std::string &s) { add(s); return *this; }
00075
00079 void insert( size_t index, const std::string &str );
00080
00084 void set( size_t index, const std::string &str );
00085
00088 void clear();
00089
00092 size_t size() const;
00093
00096 void remove(size_t index);
00097
00101 bool find(
00102 const std::string &compareText,
00103 size_t foundIndex,
00104 bool caseSensitive = true) const;
00105
00108 void get(size_t index, std::string &outText) const;
00109
00112 std::string operator ()(size_t index) const;
00113
00116 std::string& operator ()(size_t index);
00117
00120 void getText(std::string &outText) const;
00121
00124 void setText(const std::string &inText);
00125
00128 void loadFromFile(const std::string &fileName);
00129
00132 void saveToFile(const std::string &fileName) const;
00133
00137 std::string get_string( const std::string &keyName );
00138
00142 float get_float( const std::string &keyName );
00143
00147 int get_int( const std::string &keyName );
00148
00152 double get_double( const std::string &keyName );
00153
00157 bool get_bool( const std::string &keyName );
00158
00161 void set( const std::string &keyName, const std::string &value );
00162
00165 void set( const std::string &keyName, const int &value );
00166
00169 void set( const std::string &keyName, const float &value );
00170
00173 void set( const std::string &keyName, const double &value );
00174
00177 void set( const std::string &keyName, const bool &value );
00178
00179 };
00180
00181 }
00182 }
00183
00184 #endif