NodeStream Class
(CDP::StudioAPI::NodeStream)The NodeStream is helper class abstracting node serialization. More...
Header: | #include <StudioAPI/NodeStream.h> |
Public Functions
NodeStream(ICDPNode *owner) | |
virtual | ~NodeStream() |
void | StdContainerStreamer(TContainer &container) |
NodeStream & | operator<<(const ICDPNode &node) |
NodeStream & | operator<<(const ICDPNode *node) |
NodeStream & | operator<<(const std::unique_ptr<T> &node) |
NodeStream & | operator<<(const AdoptedChild &node) |
NodeStream & | operator<<(const AbsorbedChild &node) |
Detailed Description
The NodeStream is helper class abstracting node serialization.
NodeStream is a class that implements stream operators for CDPNode based classes, AdoptedChild, AbsorbedChild and provides helper template call StdContainerStreamer() that takes as argument any std container reference that is iterable by const_iterator.
Member Function Documentation
NodeStream::NodeStream(ICDPNode *owner)
Default constructs an instance of NodeStream.
[virtual]
NodeStream::~NodeStream()
Destroys the instance of NodeStream. The destructor is virtual.
void NodeStream::StdContainerStreamer(TContainer &container)
Serializes the CDPNode based pointers in std container provided as an argument container
The provided std container must be iterable by a const_iterator like std::vector or std::list.
void MyNode::FillNodeChildren(NodeStream& serializer) const { serializer << nodeNotInContainer; serializer.StdContainerStreamer(childNodesContainer); CDPNode::FillNodeChildren(serializer); //Always call direct base class implementation }
NodeStream &NodeStream::operator<<(const ICDPNode &node)
Defines a stream operator that accepts const ICDPNode& as its argument.
NodeStream &NodeStream::operator<<(const ICDPNode *node)
Defines a stream operator that accepts const ICDPNode* as its argument.
NodeStream &NodeStream::operator<<(const std::unique_ptr<T> &node)
NodeStream &NodeStream::operator<<(const AdoptedChild &node)
Defines a stream operator that accepts const AdoptedChild& as its argument.
AdoptedChild is used as a wrapper class to relocate a node in logical tree from its parent under this node.
void MyNode::FillNodeChildren(NodeStream& serializer) const { serializer << AdoptedChild(parentsNode); CDPNode::FillNodeChildren(serializer); //Always call direct base class implementation }
NodeStream &NodeStream::operator<<(const AbsorbedChild &node)
Defines a stream operator that accepts const AbsorbedChild& as its argument.
AbsorbedChild is used as a wrapper class to absorb the children of a composited node, collapsing the node level that would occur otherwize during composition. Name of the absorbed node is ignored.
void MyNode::FillNodeChildren(NodeStream& serializer) const { serializer << AbsorbedChild(compositedNode); CDPNode::FillNodeChildren(serializer); //Always call direct base class implementation }
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.