#include <string>
#include <algorithm>
#include <s11n.net/s11n/s11n_debuggering_macros.hpp>
#include <s11n.net/s11n/serialize.hpp>
#include <s11n.net/s11n/traits.hpp>
#include <s11n.net/s11n/type_traits.hpp>
#include <s11n.net/s11n/algo.tpp>
Include dependency graph for algo.hpp:
This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Namespaces | |
namespace | s11n |
namespace | s11n::Detail |
namespace | s11n::debug |
Classes | |
struct | s11n::object_deleter |
Deletes an object passed to it. More... | |
struct | s11n::object_reference_wrapper< T > |
object_reference_wrapper is a type for giving access to T objects via their dot operator, regardless of whether they are pointers or not. More... | |
struct | s11n::object_reference_wrapper< T * > |
A specialization to wrap pointers to (T *) such that they can be accessed, via this wrapper, using a dot instead of -> . More... | |
struct | s11n::const_object_reference_wrapper< T > |
const_object_reference_wrapper is identical in usage to object_reference_wrapper, except that it deals with const objects. More... | |
struct | s11n::const_object_reference_wrapper< T * > |
A specialization to wrap pointers to (T *) such that they can be accessed, via this wrapper, using a dot instead of -> . More... | |
class | s11n::Detail::child_pointer_deep_copier< ListType > |
child_pointer_deep_copier is a functor to deep-copy a list of pointers into another list. More... | |
struct | s11n::Detail::same_name< NodeT > |
Functor to return true if given NodeT objects match a certain name. More... | |
struct | s11n::subnode_serializer_f< NodeType > |
A helper functor to loop over serializable children. More... | |
struct | s11n::streamable_type_serialization_proxy |
A Serializable Proxy for streamable types. More... | |
struct | s11n::serialize_subnode_f |
A functor which simply forwards its arguments to s11n::serialize_subnode(). More... | |
struct | s11n::deserialize_subnode_f |
A functor which simply forwards its arguments to s11n::deserialize_subnode(). More... | |
Defines | |
#define | s11n_net_s11n_v1_1_ALGO_HPP_INCLUDED 1 |
Functions | |
template<typename DataNodeType, typename SerializableT> | |
bool | s11n::serialize_subnode (DataNodeType &target, const std::string &nodename, const SerializableT &src) |
Serializes src to as a subnode of target, named nodename. | |
template<typename DataNodeType, typename DeserializableT> | |
bool | s11n::deserialize_subnode (const DataNodeType &src, const std::string &subnodename, DeserializableT &target) |
If a child named subnodename is found in src then this function returns deserialize( child, target ) and returns it's result, otherwise it returns 0. | |
template<typename DataNodeType, typename DeserializableT> | |
DeserializableT * | s11n::deserialize_subnode (const DataNodeType &src, const std::string &subnodename) |
If a child named subnodename is found in src then this function returns the result of deserialize(child), otherwise it returns 0. | |
template<typename InputIt, typename OutputIt, typename UnaryPredicate> | |
OutputIt | s11n::copy_if (InputIt first, InputIt last, OutputIt result, UnaryPredicate pred) |
For each item in [first,last), copies the item to OutputIt if pred(*item) returns true. | |
template<typename IterT> | |
void | s11n::delete_objects (IterT begin, IterT end) |
For each item in [begin,end) object_deleter()(*item) is called. | |
template<typename NodeType, typename ChildType> | |
void | s11n::add_child (NodeType &parent, ChildType *ch) |
Adds ch as a child of parent. | |
template<typename NodeType> | |
NodeType & | s11n::create_child (NodeType &parent, const std::string nodename) |
Creates a new node, named nodename, as a child of parent. | |
template<typename NodeT, typename DestContainerT> | |
size_t | s11n::find_children_by_name (const NodeT &parent, const std::string &name, DestContainerT &target) |
Each child in parent.children() which has the given name is copied into the target container. | |
template<typename NodeT> | |
const NodeT * | s11n::find_child_by_name (const NodeT &parent, const std::string &name) |
Finds the FIRST child in parent with the given name and returns a pointer to it, or 0 if no such child is found. | |
template<typename NodeT> | |
NodeT * | s11n::find_child_by_name (NodeT &parent, const std::string &name) |
A non-const overload of find_child_by_name(). | |
template<typename NodeT> | |
void | s11n::debug::dump_node_structure (const NodeT &n, int indentlv=0) |
Dumps a tree-like view of n's structure, excluding properties, to cerr. |