Poco::Dynamic

template < typename K, typename M = std::map < K, Var >, typename S = std::set < K >>

class Struct

Library: Foundation
Package: Dynamic
Header: Poco/Dynamic/Struct.h

Description

Struct allows to define a named collection of Var objects.

Member Summary

Member Functions: begin, clear, contains, empty, end, erase, find, getVar, insert, members, operator [], size, swap, toString

Types

ConstIterator

typedef typename Data::const_iterator ConstIterator;

Data

typedef M Data;

InsRetVal

typedef typename std::pair < typename Struct < K, M, S >::Iterator, bool > InsRetVal;

Iterator

typedef typename Data::iterator Iterator;

NameSet

typedef S NameSet;

Ptr

typedef typename Poco::SharedPtr < Struct < K, M, S >> Ptr;

SizeType

typedef typename Struct < K >::Data::size_type SizeType;

ValueType

typedef typename Struct < K >::Data::value_type ValueType;

Constructors

Struct inline

Struct();

Creates an empty Struct

Struct inline

Struct(
    const Data & val
);

Creates the Struct from the given value.

Struct inline

template < typename T > Struct(
    const std::map < K, T > & val
);

Struct inline

template < typename T > Struct(
    const OrderedMap < K, T > & val
);

Destructor

~Struct virtual inline

virtual ~Struct();

Destroys the Struct.

Member Functions

begin inline

inline Iterator begin();

Returns the begin iterator for the Struct

begin inline

inline ConstIterator begin() const;

Returns the begin const iterator for the Struct

clear inline

inline void clear();

Remove all elements from the struct

contains inline

inline bool contains(
    const K & name
) const;

Returns true if the Struct contains a member with the given name

empty inline

inline bool empty() const;

Returns true if the Struct doesn't contain any members

end inline

inline Iterator end();

Returns the end iterator for the Struct

end inline

inline ConstIterator end() const;

Returns the end const iterator for the Struct

erase inline

inline SizeType erase(
    const K & key
);

Erases the element if found, returns number of elements deleted

erase inline

inline void erase(
    Iterator & it
);

Erases the element at the given position

find inline

inline Iterator find(
    const K & name
);

Returns an iterator, pointing to the <name,Var> pair containing the element, or it returns end() if the member was not found

find inline

inline ConstIterator find(
    const K & name
) const;

Returns a const iterator, pointing to the <name,Var> pair containing the element, or it returns end() if the member was not found

getVar inline

inline Var getVar(
    const K & key
) const;

Returns the var value of the element with the given name. Throws a NotFoundException if the key does not exist.

getVar inline

template < typename DefT = Var > inline Var getVar(
    const K & key,
    const DefT & defaultValue
) const;

Returns the var value of the element with the given name. or defaultValue if none is found.

insert inline

template < typename T > inline InsRetVal insert(
    const K & key,
    const T & value
);

Inserts a <name, Var> pair into the Struct, returns a pair containing the iterator and a boolean which indicates success or not (is true, when insert succeeded, false, when already another element was present, in this case Iterator points to that other element)

insert inline

inline InsRetVal insert(
    const ValueType & aPair
);

Inserts a <name, Var> pair into the Struct, returns a pair containing the iterator and a boolean which indicates success or not (is true, when insert succeeded, false, when already another element was present, in this case Iterator points to that other element)

members inline

inline NameSet members() const;

Returns a sorted collection containing all member names

operator [] inline

inline Var & operator[] (
    const K & name
);

Returns the Var with the given name, creates an entry if not found.

operator [] inline

const Var & operator[] (
    const K & name
) const;

Returns the Var with the given name, throws a NotFoundException if the data member is not found.

size inline

SizeType size() const;

Returns the number of members the Struct contains

swap inline

inline void swap(
    Struct & other
) noexcept;

Swap content of Struct with another Struct

toString inline

std::string toString(
    bool wrap = true
) const;

Returns the DynamicStruct as string.

To prevent unwanted string wrapping (eg. when a value is JSON string), wrap should be false. Note, however, that wrap argument is of a limited utility because it applies to the entire Struct, so it should not be relied on when mixed content (ie. plain string, which should be wrapped, and JSON-as-string entries, which shouldn't) is held.