NodeStream Class

(CDP::StudioAPI::NodeStream)

The NodeStream is helper class abstracting node serialization. More...

Header: #include <StudioAPI/NodeStream.h>

Public Functions

NodeStream(INodeSerializer &serializer, ICDPNode *owner)
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(INodeSerializer &serializer, ICDPNode *owner)

Default constructs an instance of NodeStream.

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
}

© CDP Technologies AS - All rights reserved