libsesstype  2.0.0
Library for Session Types programming.
 All Classes Namespaces Files Functions
Public Types | Public Member Functions | Protected Member Functions
sesstype::BlockNodeTmpl< BaseNode, RoleType, MessageType, VisitorType > Class Template Reference

Block of statements (Node instances). More...

#include <block.h>

Inheritance diagram for sesstype::BlockNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef std::vector< BaseNode * > NodeContainer

Public Member Functions

 BlockNodeTmpl ()
 BlockNode constructor.
 BlockNodeTmpl (const BlockNodeTmpl &node)
 BlockNode copy constructor.
 ~BlockNodeTmpl () override
 BlockNode destructor.
BlockNodeTmplclone () const override
 clone a BlockNode.
BaseNode * child (unsigned int idx) const
 Get child Node at position idx.
unsigned int num_children () const
 Get number of child statements (Node) in BlockNode.
void append_child (BaseNode *child)
 Add child Node to current Block.
void set_child (unsigned int idx, BaseNode *child)
NodeContainer::const_iterator child_begin () const
 Start iterator for children.
NodeContainer::const_iterator child_end () const
 End iterator for children.
virtual void accept (VisitorType &v) override

Protected Member Functions

 BlockNodeTmpl (int type)

Detailed Description

template<class BaseNode, class RoleType, class MessageType, class VisitorType>
class sesstype::BlockNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >

Block of statements (Node instances).


Member Function Documentation

template<class BaseNode, class RoleType, class MessageType, class VisitorType>
void sesstype::BlockNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::append_child ( BaseNode *  child) [inline]

Add child Node to current Block.

Parameters:
[in]childNode.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
BaseNode* sesstype::BlockNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::child ( unsigned int  idx) const [inline]

Get child Node at position idx.

Parameters:
[in]idxof Node in BlockNode.
Returns:
child Node at position idx.
Exceptions:
std::out_of_rangeif idx is out of bounds.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
unsigned int sesstype::BlockNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::num_children ( ) const [inline]

Get number of child statements (Node) in BlockNode.

Returns:
number of child Node in current BlockNode.

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions