ArnLib  4.0.x
Active Registry Network
Arn::XStringMap Class Reference

Container class with string representation for serialized data. More...

#include <XStringMap.hpp>

Inheritance diagram for Arn::XStringMap:

Public Types

typedef XStringMapOptions Options
 

Public Member Functions

 XStringMap ()
 
 XStringMap (const XStringMap &other)
 Make shallow copy (Qt style) More...
 
 XStringMap (const QByteArray &xString)
 
 XStringMap (const QVariantMap &variantMap)
 
 ~XStringMap ()
 
XStringMapoperator= (const XStringMap &other)
 Make shallow copy (Qt style) More...
 
int size () const
 
void clear (bool freeMem=false)
 
void squeeze ()
 
const Optionsoptions () const
 
void setOptions (const Options &newOptions)
 
int indexOf (const char *key, int from=0) const
 
int indexOf (const QByteArray &key, int from=0) const
 
int indexOf (const QString &key, int from=0) const
 
int indexOfValue (const QByteArray &value, int from=0) const
 
int indexOfValue (const QString &value, int from=0) const
 
int maxEnumOf (const char *keyPrefix) const
 
XStringMapadd (const char *key, const QByteArray &val)
 
XStringMapadd (const char *key, const char *val)
 
XStringMapadd (const char *keyPrefix, uint eNum, const QByteArray &val)
 
XStringMapadd (const QByteArray &key, const QByteArray &val)
 
XStringMapadd (const char *key, const QString &val)
 
XStringMapadd (const char *keyPrefix, uint eNum, const QString &val)
 
XStringMapadd (const QByteArray &key, const QString &val)
 
XStringMapadd (const QString &key, const QString &val)
 
XStringMapadd (const XStringMap &other)
 
XStringMapadd (const QVariantMap &variantMap)
 
XStringMapaddNum (const char *key, int val)
 
XStringMapaddNum (const QByteArray &key, int val)
 
XStringMapaddNum (const QString &key, int val)
 
XStringMapaddNum (const char *key, uint val)
 
XStringMapaddNum (const QByteArray &key, uint val)
 
XStringMapaddNum (const QString &key, uint val)
 
XStringMapaddNum (const char *key, double val, int precision=-1)
 
XStringMapaddNum (const QByteArray &key, double val, int precision=-1)
 
XStringMapaddNum (const QString &key, double val, int precision=-1)
 
XStringMapaddValues (const QStringList &stringList)
 
XStringMapset (int i, const QByteArray &val)
 
XStringMapset (int i, const QString &val)
 
XStringMapset (const char *key, const QByteArray &val)
 
XStringMapset (const char *key, const char *val)
 
XStringMapset (const QByteArray &key, const QByteArray &val)
 
XStringMapset (const char *key, const QString &val)
 
XStringMapset (const QByteArray &key, const QString &val)
 
XStringMapset (const QString &key, const QString &val)
 
XStringMapsetKey (int i, const QByteArray &key)
 
const QByteArray & keyRef (int i) const
 
QByteArray key (int i, const char *def=arnNullptr) const
 
QByteArray key (const QByteArray &value, const char *def=arnNullptr) const
 
QByteArray key (const QString &value, const char *def=arnNullptr) const
 
QString keyString (int i, const QString &def=QString()) const
 
QString keyString (const QString &value, const QString &def=QString()) const
 
const QByteArray & valueRef (int i) const
 
QByteArray value (int i, const char *def=arnNullptr) const
 
QByteArray value (const char *key, const char *def=arnNullptr) const
 
QByteArray value (const char *keyPrefix, uint eNum, const char *def=arnNullptr) const
 
QByteArray value (const QByteArray &key, const char *def=arnNullptr) const
 
QByteArray value (const QByteArray &key, const QByteArray &def) const
 
QString valueString (int i, const QString &def=QString()) const
 
QString valueString (const char *key, const QString &def=QString()) const
 
QString valueString (const char *keyPrefix, uint eNum, const QString &def=QString()) const
 
QString valueString (const QByteArray &key, const QString &def=QString()) const
 
QString valueString (const QString &key, const QString &def=QString()) const
 
XStringMapremove (int index)
 
XStringMapremove (const char *key)
 
XStringMapremove (const QByteArray &key)
 
XStringMapremove (const QString &key)
 
XStringMapremoveValue (const QByteArray &val)
 
XStringMapremoveValue (const QString &val)
 
QByteArray toXString () const
 
QString toXStringString () const
 
bool fromXString (const QByteArray &inXString, int size=-1)
 
bool fromXString (const QString &inXString)
 
void setEmptyKeysToValue ()
 
void reverseOrder ()
 
QStringList keys () const
 
QStringList values (const char *keyPrefix=arnNullptr) const
 
MQVariantMap toVariantMap (bool useStringVal) const
 
void stringCode (QByteArray &dst, const QByteArray &src) const
 
void stringDecode (QByteArray &dst, const QByteArray &src) const
 
void append (const char *key, const QByteArray &val)
 
void append (const char *key, const char *val)
 
void append (const char *keyPrefix, uint eNum, const QByteArray &val)
 
void append (const QByteArray &key, const QByteArray &val)
 
void append (const char *key, const QString &val)
 
void append (const char *keyPrefix, uint eNum, const QString &val)
 
void append (const QByteArray &key, const QString &val)
 
void append (const QString &key, const QString &val)
 
void append (const XStringMap &other)
 
void append (const QVariantMap &other)
 
XStringMapoperator+= (const XStringMap &other)
 
XStringMapoperator+= (const QVariantMap &other)
 
QByteArray info ()
 

Detailed Description

Container class with string representation for serialized data.

The primary usage is for creating and parsing serialized data. it's optimized for giving an easy readable representation which never contains char codes below 32 (space).

This class can store data with a key like QMaps. There is a guarantied order of storing, i.e. its not sorted like QMaps.

The stored data can be ascii as well as binary.

Following mapping is done when serialized to the XString:

Special codes below 32: code 0 -> "\0", code 10 -> "\n", code 13 -> "\r"
General codes below 32: code 1 -> "^A", code 2 -> "^B" and so on to code 31
code 32 (space) -> "_", "_" -> "\\_", "^" -> "\^", "\" -> "\\"

Key must be printable (char codes > 32). It must not contain " ", "=", "^" or "|" char. If this is not feasible, use option AnyKey.

The XString can be imported to the XStringMap. To get back stored values, XStringMap is Queried with the keys or by index.

xsm.add("", "put");
xsm.add("id", "level");
xsm.addNum("val", 12);
qDebug() << "XString: " << xsm.toXString();

This will print "XString: put id=level val=12"

Definition at line 107 of file XStringMap.hpp.

Member Typedef Documentation

◆ Options

Definition at line 110 of file XStringMap.hpp.

Constructor & Destructor Documentation

◆ XStringMap() [1/4]

Arn::XStringMap::XStringMap ( )

Definition at line 54 of file ArnXStringMap.cpp.

◆ XStringMap() [2/4]

Arn::XStringMap::XStringMap ( const XStringMap other)

Make shallow copy (Qt style)

Definition at line 60 of file ArnXStringMap.cpp.

◆ XStringMap() [3/4]

Arn::XStringMap::XStringMap ( const QByteArray &  xString)
explicit

Definition at line 68 of file ArnXStringMap.cpp.

◆ XStringMap() [4/4]

Arn::XStringMap::XStringMap ( const QVariantMap &  variantMap)
explicit

Definition at line 75 of file ArnXStringMap.cpp.

◆ ~XStringMap()

Arn::XStringMap::~XStringMap ( )

Definition at line 82 of file ArnXStringMap.cpp.

Member Function Documentation

◆ add() [1/10]

XStringMap & Arn::XStringMap::add ( const char *  key,
const QByteArray &  val 
)

Definition at line 199 of file ArnXStringMap.cpp.

◆ add() [2/10]

XStringMap & Arn::XStringMap::add ( const char *  key,
const char *  val 
)

Definition at line 214 of file ArnXStringMap.cpp.

◆ add() [3/10]

XStringMap & Arn::XStringMap::add ( const char *  keyPrefix,
uint  eNum,
const QByteArray &  val 
)

Definition at line 220 of file ArnXStringMap.cpp.

◆ add() [4/10]

XStringMap & Arn::XStringMap::add ( const QByteArray &  key,
const QByteArray &  val 
)

Definition at line 230 of file ArnXStringMap.cpp.

◆ add() [5/10]

XStringMap & Arn::XStringMap::add ( const char *  key,
const QString &  val 
)

Definition at line 236 of file ArnXStringMap.cpp.

◆ add() [6/10]

XStringMap & Arn::XStringMap::add ( const char *  keyPrefix,
uint  eNum,
const QString &  val 
)

Definition at line 242 of file ArnXStringMap.cpp.

◆ add() [7/10]

XStringMap & Arn::XStringMap::add ( const QByteArray &  key,
const QString &  val 
)

Definition at line 248 of file ArnXStringMap.cpp.

◆ add() [8/10]

XStringMap & Arn::XStringMap::add ( const QString &  key,
const QString &  val 
)

Definition at line 254 of file ArnXStringMap.cpp.

◆ add() [9/10]

XStringMap & Arn::XStringMap::add ( const XStringMap other)

Definition at line 260 of file ArnXStringMap.cpp.

◆ add() [10/10]

XStringMap & Arn::XStringMap::add ( const QVariantMap &  variantMap)

Definition at line 270 of file ArnXStringMap.cpp.

◆ addNum() [1/9]

XStringMap & Arn::XStringMap::addNum ( const char *  key,
int  val 
)

Definition at line 286 of file ArnXStringMap.cpp.

◆ addNum() [2/9]

XStringMap & Arn::XStringMap::addNum ( const QByteArray &  key,
int  val 
)

Definition at line 292 of file ArnXStringMap.cpp.

◆ addNum() [3/9]

XStringMap & Arn::XStringMap::addNum ( const QString &  key,
int  val 
)

Definition at line 298 of file ArnXStringMap.cpp.

◆ addNum() [4/9]

XStringMap & Arn::XStringMap::addNum ( const char *  key,
uint  val 
)

Definition at line 304 of file ArnXStringMap.cpp.

◆ addNum() [5/9]

XStringMap & Arn::XStringMap::addNum ( const QByteArray &  key,
uint  val 
)

Definition at line 310 of file ArnXStringMap.cpp.

◆ addNum() [6/9]

XStringMap & Arn::XStringMap::addNum ( const QString &  key,
uint  val 
)

Definition at line 316 of file ArnXStringMap.cpp.

◆ addNum() [7/9]

XStringMap & Arn::XStringMap::addNum ( const char *  key,
double  val,
int  precision = -1 
)

Definition at line 322 of file ArnXStringMap.cpp.

◆ addNum() [8/9]

XStringMap & Arn::XStringMap::addNum ( const QByteArray &  key,
double  val,
int  precision = -1 
)

Definition at line 329 of file ArnXStringMap.cpp.

◆ addNum() [9/9]

XStringMap & Arn::XStringMap::addNum ( const QString &  key,
double  val,
int  precision = -1 
)

Definition at line 336 of file ArnXStringMap.cpp.

◆ addValues()

XStringMap & Arn::XStringMap::addValues ( const QStringList &  stringList)

Definition at line 343 of file ArnXStringMap.cpp.

◆ append() [1/10]

void Arn::XStringMap::append ( const char *  key,
const QByteArray &  val 
)
inline

Definition at line 208 of file XStringMap.hpp.

◆ append() [2/10]

void Arn::XStringMap::append ( const char *  key,
const char *  val 
)
inline

Definition at line 210 of file XStringMap.hpp.

◆ append() [3/10]

void Arn::XStringMap::append ( const char *  keyPrefix,
uint  eNum,
const QByteArray &  val 
)
inline

Definition at line 212 of file XStringMap.hpp.

◆ append() [4/10]

void Arn::XStringMap::append ( const QByteArray &  key,
const QByteArray &  val 
)
inline

Definition at line 214 of file XStringMap.hpp.

◆ append() [5/10]

void Arn::XStringMap::append ( const char *  key,
const QString &  val 
)
inline

Definition at line 216 of file XStringMap.hpp.

◆ append() [6/10]

void Arn::XStringMap::append ( const char *  keyPrefix,
uint  eNum,
const QString &  val 
)
inline

Definition at line 218 of file XStringMap.hpp.

◆ append() [7/10]

void Arn::XStringMap::append ( const QByteArray &  key,
const QString &  val 
)
inline

Definition at line 220 of file XStringMap.hpp.

◆ append() [8/10]

void Arn::XStringMap::append ( const QString &  key,
const QString &  val 
)
inline

Definition at line 222 of file XStringMap.hpp.

◆ append() [9/10]

void Arn::XStringMap::append ( const XStringMap other)
inline

Definition at line 224 of file XStringMap.hpp.

◆ append() [10/10]

void Arn::XStringMap::append ( const QVariantMap &  other)
inline

Definition at line 226 of file XStringMap.hpp.

◆ clear()

void Arn::XStringMap::clear ( bool  freeMem = false)

Definition at line 104 of file ArnXStringMap.cpp.

◆ fromXString() [1/2]

bool Arn::XStringMap::fromXString ( const QByteArray &  inXString,
int  size = -1 
)

Definition at line 740 of file ArnXStringMap.cpp.

◆ fromXString() [2/2]

bool Arn::XStringMap::fromXString ( const QString &  inXString)

Definition at line 820 of file ArnXStringMap.cpp.

◆ indexOf() [1/3]

int Arn::XStringMap::indexOf ( const char *  key,
int  from = 0 
) const

Definition at line 136 of file ArnXStringMap.cpp.

◆ indexOf() [2/3]

int Arn::XStringMap::indexOf ( const QByteArray &  key,
int  from = 0 
) const

Definition at line 149 of file ArnXStringMap.cpp.

◆ indexOf() [3/3]

int Arn::XStringMap::indexOf ( const QString &  key,
int  from = 0 
) const

Definition at line 160 of file ArnXStringMap.cpp.

◆ indexOfValue() [1/2]

int Arn::XStringMap::indexOfValue ( const QByteArray &  value,
int  from = 0 
) const

Definition at line 166 of file ArnXStringMap.cpp.

◆ indexOfValue() [2/2]

int Arn::XStringMap::indexOfValue ( const QString &  value,
int  from = 0 
) const

Definition at line 177 of file ArnXStringMap.cpp.

◆ info()

QByteArray Arn::XStringMap::info ( )

Definition at line 1074 of file ArnXStringMap.cpp.

◆ key() [1/3]

QByteArray Arn::XStringMap::key ( int  i,
const char *  def = arnNullptr 
) const

Definition at line 431 of file ArnXStringMap.cpp.

◆ key() [2/3]

QByteArray Arn::XStringMap::key ( const QByteArray &  value,
const char *  def = arnNullptr 
) const

Definition at line 439 of file ArnXStringMap.cpp.

◆ key() [3/3]

QByteArray Arn::XStringMap::key ( const QString &  value,
const char *  def = arnNullptr 
) const

Definition at line 448 of file ArnXStringMap.cpp.

◆ keyRef()

const QByteArray & Arn::XStringMap::keyRef ( int  i) const

Definition at line 423 of file ArnXStringMap.cpp.

◆ keys()

QStringList Arn::XStringMap::keys ( ) const

Definition at line 647 of file ArnXStringMap.cpp.

◆ keyString() [1/2]

QString Arn::XStringMap::keyString ( int  i,
const QString &  def = QString() 
) const

Definition at line 454 of file ArnXStringMap.cpp.

◆ keyString() [2/2]

QString Arn::XStringMap::keyString ( const QString &  value,
const QString &  def = QString() 
) const

Definition at line 463 of file ArnXStringMap.cpp.

◆ maxEnumOf()

int Arn::XStringMap::maxEnumOf ( const char *  keyPrefix) const

Definition at line 183 of file ArnXStringMap.cpp.

◆ operator+=() [1/2]

XStringMap & Arn::XStringMap::operator+= ( const XStringMap other)

Definition at line 1068 of file ArnXStringMap.cpp.

◆ operator+=() [2/2]

XStringMap & Arn::XStringMap::operator+= ( const QVariantMap &  other)

Definition at line 1062 of file ArnXStringMap.cpp.

◆ operator=()

XStringMap & Arn::XStringMap::operator= ( const XStringMap other)

Make shallow copy (Qt style)

Definition at line 87 of file ArnXStringMap.cpp.

◆ options()

const XStringMap::Options & Arn::XStringMap::options ( ) const

Definition at line 124 of file ArnXStringMap.cpp.

◆ remove() [1/4]

XStringMap & Arn::XStringMap::remove ( int  index)

Definition at line 569 of file ArnXStringMap.cpp.

◆ remove() [2/4]

XStringMap & Arn::XStringMap::remove ( const char *  key)

Definition at line 585 of file ArnXStringMap.cpp.

◆ remove() [3/4]

XStringMap & Arn::XStringMap::remove ( const QByteArray &  key)

Definition at line 591 of file ArnXStringMap.cpp.

◆ remove() [4/4]

XStringMap & Arn::XStringMap::remove ( const QString &  key)

Definition at line 597 of file ArnXStringMap.cpp.

◆ removeValue() [1/2]

XStringMap & Arn::XStringMap::removeValue ( const QByteArray &  val)

Definition at line 603 of file ArnXStringMap.cpp.

◆ removeValue() [2/2]

XStringMap & Arn::XStringMap::removeValue ( const QString &  val)

Definition at line 609 of file ArnXStringMap.cpp.

◆ reverseOrder()

void Arn::XStringMap::reverseOrder ( )

Definition at line 626 of file ArnXStringMap.cpp.

◆ set() [1/8]

XStringMap & Arn::XStringMap::set ( int  i,
const QByteArray &  val 
)

Definition at line 353 of file ArnXStringMap.cpp.

◆ set() [2/8]

XStringMap & Arn::XStringMap::set ( int  i,
const QString &  val 
)

Definition at line 364 of file ArnXStringMap.cpp.

◆ set() [3/8]

XStringMap & Arn::XStringMap::set ( const char *  key,
const QByteArray &  val 
)

Definition at line 370 of file ArnXStringMap.cpp.

◆ set() [4/8]

XStringMap & Arn::XStringMap::set ( const char *  key,
const char *  val 
)

Definition at line 382 of file ArnXStringMap.cpp.

◆ set() [5/8]

XStringMap & Arn::XStringMap::set ( const QByteArray &  key,
const QByteArray &  val 
)

Definition at line 388 of file ArnXStringMap.cpp.

◆ set() [6/8]

XStringMap & Arn::XStringMap::set ( const char *  key,
const QString &  val 
)

Definition at line 394 of file ArnXStringMap.cpp.

◆ set() [7/8]

XStringMap & Arn::XStringMap::set ( const QByteArray &  key,
const QString &  val 
)

Definition at line 400 of file ArnXStringMap.cpp.

◆ set() [8/8]

XStringMap & Arn::XStringMap::set ( const QString &  key,
const QString &  val 
)

Definition at line 406 of file ArnXStringMap.cpp.

◆ setEmptyKeysToValue()

void Arn::XStringMap::setEmptyKeysToValue ( )

Definition at line 615 of file ArnXStringMap.cpp.

◆ setKey()

XStringMap & Arn::XStringMap::setKey ( int  i,
const QByteArray &  key 
)

Definition at line 412 of file ArnXStringMap.cpp.

◆ setOptions()

void Arn::XStringMap::setOptions ( const Options newOptions)

Definition at line 130 of file ArnXStringMap.cpp.

◆ size()

int Arn::XStringMap::size ( ) const
inline

Definition at line 121 of file XStringMap.hpp.

◆ squeeze()

void Arn::XStringMap::squeeze ( )

Definition at line 115 of file ArnXStringMap.cpp.

◆ stringCode()

void Arn::XStringMap::stringCode ( QByteArray &  dst,
const QByteArray &  src 
) const

Definition at line 826 of file ArnXStringMap.cpp.

◆ stringDecode()

void Arn::XStringMap::stringDecode ( QByteArray &  dst,
const QByteArray &  src 
) const

Definition at line 970 of file ArnXStringMap.cpp.

◆ toVariantMap()

MQVariantMap Arn::XStringMap::toVariantMap ( bool  useStringVal) const

Definition at line 673 of file ArnXStringMap.cpp.

◆ toXString()

QByteArray Arn::XStringMap::toXString ( ) const

Definition at line 688 of file ArnXStringMap.cpp.

◆ toXStringString()

QString Arn::XStringMap::toXStringString ( ) const

Definition at line 733 of file ArnXStringMap.cpp.

◆ value() [1/5]

QByteArray Arn::XStringMap::value ( int  i,
const char *  def = arnNullptr 
) const

Definition at line 478 of file ArnXStringMap.cpp.

◆ value() [2/5]

QByteArray Arn::XStringMap::value ( const char *  key,
const char *  def = arnNullptr 
) const

Definition at line 486 of file ArnXStringMap.cpp.

◆ value() [3/5]

QByteArray Arn::XStringMap::value ( const char *  keyPrefix,
uint  eNum,
const char *  def = arnNullptr 
) const

Definition at line 495 of file ArnXStringMap.cpp.

◆ value() [4/5]

QByteArray Arn::XStringMap::value ( const QByteArray &  key,
const char *  def = arnNullptr 
) const

Definition at line 508 of file ArnXStringMap.cpp.

◆ value() [5/5]

QByteArray Arn::XStringMap::value ( const QByteArray &  key,
const QByteArray &  def 
) const

Definition at line 517 of file ArnXStringMap.cpp.

◆ valueRef()

const QByteArray & Arn::XStringMap::valueRef ( int  i) const

Definition at line 470 of file ArnXStringMap.cpp.

◆ values()

QStringList Arn::XStringMap::values ( const char *  keyPrefix = arnNullptr) const

Definition at line 658 of file ArnXStringMap.cpp.

◆ valueString() [1/5]

QString Arn::XStringMap::valueString ( int  i,
const QString &  def = QString() 
) const

Definition at line 527 of file ArnXStringMap.cpp.

◆ valueString() [2/5]

QString Arn::XStringMap::valueString ( const char *  key,
const QString &  def = QString() 
) const

Definition at line 536 of file ArnXStringMap.cpp.

◆ valueString() [3/5]

QString Arn::XStringMap::valueString ( const char *  keyPrefix,
uint  eNum,
const QString &  def = QString() 
) const

Definition at line 543 of file ArnXStringMap.cpp.

◆ valueString() [4/5]

QString Arn::XStringMap::valueString ( const QByteArray &  key,
const QString &  def = QString() 
) const

Definition at line 555 of file ArnXStringMap.cpp.

◆ valueString() [5/5]

QString Arn::XStringMap::valueString ( const QString &  key,
const QString &  def = QString() 
) const

Definition at line 562 of file ArnXStringMap.cpp.


The documentation for this class was generated from the following files: