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.