File Information
Library: Foundation
Package: Dynamic
Header: Poco/Dynamic/Struct.h
Description
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 
 
Struct();
Creates an empty Struct
Struct 
 
Creates the Struct from the given value.
Struct 
 
template < typename T > Struct(
    const std::map < K, T > & val
);
Struct 
 
template < typename T > Struct(
    const OrderedMap < K, T > & val
);
Destructor
~Struct 
  
 
virtual ~Struct();
Destroys the Struct.
Member Functions
begin 
 
inline Iterator begin();
Returns the begin iterator for the Struct
begin 
 
inline ConstIterator begin() const;
Returns the begin const iterator for the Struct
clear 
 
inline void clear();
Remove all elements from the struct
contains 
 
inline bool contains(
    const K & name
) const;
Returns true if the Struct contains a member with the given name
empty 
 
inline bool empty() const;
Returns true if the Struct doesn't contain any members
end 
 
inline Iterator end();
Returns the end iterator for the Struct
end 
 
inline ConstIterator end() const;
Returns the end const iterator for the Struct
erase 
 
inline SizeType erase(
    const K & key
);
Erases the element if found, returns number of elements deleted
erase 
 
inline void erase(
    Iterator & it
);
Erases the element at the given position
find 
 
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 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 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 
 
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 
 
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 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 NameSet members() const;
Returns a sorted collection containing all member names
operator [] 
 
inline Var & operator[] (
    const K & name
);
Returns the Var with the given name, creates an entry if not found.
operator [] 
 
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 
 
SizeType size() const;
Returns the number of members the Struct contains
swap 
 
inline void swap(
    Struct & other
) noexcept;
toString 
 
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.