A functor to allow us to easily walk a list of S-Nodes and deserialize each one into a target container. More...
#include <functional.hpp>
Public Types | |
typedef OutIterator | type |
typedef SerializableType | serializable_type |
Public Member Functions | |
deserialize_to_output_iter_f (type target) | |
Sets this object's output iterator. | |
deserialize_to_output_iter_f (type target, BinaryFunctorT f) | |
Sets this object's output iterator and copies the given functor. | |
template<typename NodeType > | |
bool | operator() (NodeType *const &src) |
Creates a new object of serializable_type and deserializes it. | |
Public Attributes | |
type | iterator |
BinaryFunctorT | functor |
A functor to allow us to easily walk a list of S-Nodes and deserialize each one into a target container.
The optional BinaryFunctorT defines the functor to use to deserialize each object. The default simply routes through the s11n::deserialize() API.
SerializableType is unforuntately required: we can't derive it from the output iterator.
SerializableType MAY NOT yet be pointer-qualified. That's on the to-fix list somewhere. It would inherently cause a leak or be very incorrect in some uses, though, like using an ostream_iterator(). It could be made to function, but would not be leak-proof.
Also, we create and copy SerializableTypes here, so that type should be cheap to do that with.
BinaryFunctorT must conform to the interface defined by deserialize_f.
Example, assuming NTR is a node_traits type:
std::for_each( NTR::children(node).begin(), NTR::children(node).end(), deser_to_outiter_f<MyType>( std::back_inserter(myvector) ) );
Definition at line 806 of file functional.hpp.
typedef SerializableType s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::serializable_type |
Definition at line 812 of file functional.hpp.
typedef OutIterator s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::type |
Definition at line 809 of file functional.hpp.
s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::deserialize_to_output_iter_f | ( | type | target | ) | [inline, explicit] |
Sets this object's output iterator.
Definition at line 819 of file functional.hpp.
s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::deserialize_to_output_iter_f | ( | type | target, | |
BinaryFunctorT | f | |||
) | [inline] |
Sets this object's output iterator and copies the given functor.
Definition at line 826 of file functional.hpp.
bool s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::operator() | ( | NodeType *const & | src | ) | [inline] |
Creates a new object of serializable_type and deserializes it.
On success iterator is assigned and incremented and true is returned. On error false is returned or an exception is propagated.
If src is (!src), false is returned.
Note that the odd pointerness of the argument is because node children lists contain pointers and are const in a deserialize context.
Definition at line 841 of file functional.hpp.
References s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::functor, and s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::iterator.
BinaryFunctorT s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::functor |
Definition at line 811 of file functional.hpp.
Referenced by s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::operator()().
type s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::iterator |
Definition at line 810 of file functional.hpp.
Referenced by s11n::deserialize_to_output_iter_f< SerializableType, OutIterator, BinaryFunctorT >::operator()().