42 #ifndef ARN_XSTRINGMAP_HPP 43 #define ARN_XSTRINGMAP_HPP 49 #include <QStringList> 52 #define ARNXSTRINGMAP_VER "3.0" 115 explicit XStringMap(
const QByteArray& xString);
116 explicit XStringMap(
const QVariantMap& variantMap);
121 int size()
const {
return _size; }
122 void clear(
bool freeMem =
false);
124 const Options& options()
const;
125 void setOptions(
const Options& newOptions);
127 int indexOf(
const char* key,
int from = 0)
const;
128 int indexOf(
const QByteArray& key,
int from = 0)
const;
129 int indexOf(
const QString& key,
int from = 0)
const;
130 int indexOfValue(
const QByteArray& value,
int from = 0)
const;
131 int indexOfValue(
const QString& value,
int from = 0)
const;
132 int maxEnumOf(
const char* keyPrefix)
const;
134 XStringMap& add(
const char* key,
const QByteArray& val);
135 XStringMap& add(
const char* key,
const char* val);
136 XStringMap& add(
const char* keyPrefix, uint eNum,
const QByteArray& val);
137 XStringMap& add(
const QByteArray& key,
const QByteArray& val);
138 XStringMap& add(
const char* key,
const QString& val);
139 XStringMap& add(
const char* keyPrefix, uint eNum,
const QString& val);
140 XStringMap& add(
const QByteArray& key,
const QString& val);
141 XStringMap& add(
const QString& key,
const QString& val);
143 XStringMap& add(
const QVariantMap& variantMap);
145 XStringMap& addNum(
const char* key,
int val);
146 XStringMap& addNum(
const QByteArray& key,
int val);
147 XStringMap& addNum(
const QString& key,
int val);
148 XStringMap& addNum(
const char* key, uint val);
149 XStringMap& addNum(
const QByteArray& key, uint val);
150 XStringMap& addNum(
const QString& key, uint val);
151 XStringMap& addNum(
const char* key,
double val,
int precision = -1);
152 XStringMap& addNum(
const QByteArray& key,
double val,
int precision = -1);
153 XStringMap& addNum(
const QString& key,
double val,
int precision = -1);
155 XStringMap& addValues(
const QStringList& stringList);
157 XStringMap&
set(
int i,
const QByteArray& val);
159 XStringMap&
set(
const char* key,
const QByteArray& val);
160 XStringMap&
set(
const char* key,
const char* val);
161 XStringMap&
set(
const QByteArray& key,
const QByteArray& val);
162 XStringMap&
set(
const char* key,
const QString& val);
163 XStringMap&
set(
const QByteArray& key,
const QString& val);
164 XStringMap&
set(
const QString& key,
const QString& val);
166 XStringMap& setKey(
int i,
const QByteArray& key);
168 const QByteArray& keyRef(
int i)
const;
169 QByteArray key(
int i,
const char* def = arnNullptr)
const;
170 QByteArray key(
const QByteArray& value,
const char* def = arnNullptr)
const;
171 QByteArray key(
const QString& value,
const char* def = arnNullptr)
const;
172 QString keyString(
int i,
const QString& def = QString())
const;
173 QString keyString(
const QString& value,
const QString& def = QString())
const;
175 const QByteArray& valueRef(
int i)
const;
176 QByteArray value(
int i,
const char* def = arnNullptr)
const;
177 QByteArray value(
const char* key,
const char* def = arnNullptr)
const;
178 QByteArray value(
const char* keyPrefix, uint eNum,
const char* def = arnNullptr)
const;
179 QByteArray value(
const QByteArray& key,
const char* def = arnNullptr)
const;
180 QByteArray value(
const QByteArray& key,
const QByteArray& def)
const;
181 QString valueString(
int i,
const QString& def = QString())
const;
182 QString valueString(
const char* key,
const QString& def = QString())
const;
183 QString valueString(
const char* keyPrefix, uint eNum,
const QString& def = QString())
const;
184 QString valueString(
const QByteArray& key,
const QString& def = QString())
const;
185 QString valueString(
const QString& key,
const QString& def = QString())
const;
191 XStringMap& removeValue(
const QByteArray& val);
194 QByteArray toXString()
const;
195 QString toXStringString()
const;
196 bool fromXString(
const QByteArray& inXString,
int size=-1);
197 bool fromXString(
const QString& inXString);
199 void setEmptyKeysToValue();
201 QStringList keys()
const;
202 QStringList values(
const char* keyPrefix = arnNullptr)
const;
205 void stringCode( QByteArray& dst,
const QByteArray& src)
const;
206 void stringDecode( QByteArray& dst,
const QByteArray& src)
const;
208 inline void append(
const char* key,
const QByteArray& val)
210 inline void append(
const char* key,
const char* val)
212 inline void append(
const char* keyPrefix, uint eNum,
const QByteArray& val)
213 {add( keyPrefix, eNum, val);}
214 inline void append(
const QByteArray& key,
const QByteArray& val)
216 inline void append(
const char* key,
const QString& val)
218 inline void append(
const char* keyPrefix, uint eNum,
const QString& val)
219 {add( keyPrefix, eNum, val);}
220 inline void append(
const QByteArray& key,
const QString& val)
222 inline void append(
const QString& key,
const QString& val)
226 inline void append(
const QVariantMap& other)
230 XStringMap& operator+=(
const QVariantMap& other);
238 QVector<QByteArray> _keyList;
239 QVector<QByteArray> _valList;
242 mutable bool _hasBinCode;
243 mutable bool _hasChgCode;
244 mutable bool _hasEqChar;
245 static QByteArray _nullValue;
250 #endif // ARN_XSTRINGMAP_HPP
XStringMapOptions Options
void append(const QByteArray &key, const QString &val)
QMultiMap< QString, QVariant > MQVariantMap
void append(const char *keyPrefix, uint eNum, const QByteArray &val)
Container class with string representation for serialized data.
void append(const char *key, const char *val)
#define MQ_DECLARE_FLAGS(FEStruct)
Flags.
void append(const QString &key, const QString &val)
void append(const QVariantMap &other)
#define MQ_DECLARE_OPERATORS_FOR_FLAGS(FEStruct)
void append(const char *key, const QByteArray &val)
void append(const XStringMap &other)
#define ARNLIBSHARED_EXPORT
void append(const QByteArray &key, const QByteArray &val)
void append(const char *keyPrefix, uint eNum, const QString &val)
void append(const char *key, const QString &val)