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

Session (st_tree) class encapsulates a single session. More...

#include <session.h>

List of all members.

Public Member Functions

 SessionTmpl ()
 Session constructor with "default" as Session name.
 SessionTmpl (std::string name)
virtual ~SessionTmpl ()
 Session destructor.
std::string name () const
void set_root (BaseNode *root)
BaseNode * root () const
RoleType * endpoint () const
void set_endpoint (RoleType *endpoint)
void project (Role *role)
int type () const
void add_role (RoleType *role)
bool has_role (RoleType *role) const
bool has_role (std::string name) const
RoleType * role (std::string name) const
unsigned int num_roles () const
RoleContainer::const_iterator role_begin () const
RoleContainer::const_iterator role_end () const

Detailed Description

template<class BaseNode, class RoleType>
class sesstype::SessionTmpl< BaseNode, RoleType >

Session (st_tree) class encapsulates a single session.

The Session class is a container for


Constructor & Destructor Documentation

template<class BaseNode, class RoleType>
sesstype::SessionTmpl< BaseNode, RoleType >::SessionTmpl ( std::string  name) [inline]

Session constructor.

Parameters:
[in]nameSession name.

Reimplemented in sesstype::parameterised::SessionTmpl< NodeType, RoleType, RoleGrpType >.


Member Function Documentation

template<class BaseNode, class RoleType>
void sesstype::SessionTmpl< BaseNode, RoleType >::add_role ( RoleType *  role) [inline]

Add a Role as a participant of the Session.

Parameters:
[in]roleto add to this Session.
template<class BaseNode, class RoleType>
RoleType* sesstype::SessionTmpl< BaseNode, RoleType >::endpoint ( ) const [inline]
Returns:
endpoint of current Session.
template<class BaseNode, class RoleType>
bool sesstype::SessionTmpl< BaseNode, RoleType >::has_role ( RoleType *  role) const [inline]

Test if Role is a participant of Session.

Parameters:
[in]roleto look for.
Returns:
true if role is a Role in the Session.
template<class BaseNode, class RoleType>
bool sesstype::SessionTmpl< BaseNode, RoleType >::has_role ( std::string  name) const [inline]

Test if Role is a participant of Session.

Parameters:
[in]nameof role to look for.
Returns:
true if role is a Role in the Session.
template<class BaseNode, class RoleType>
std::string sesstype::SessionTmpl< BaseNode, RoleType >::name ( ) const [inline]
Returns:
name of Session.
template<class BaseNode, class RoleType>
void sesstype::SessionTmpl< BaseNode, RoleType >::project ( Role role) [inline]

Perform endpoint projection of Session with respect to endpoint Role.

Parameters:
[in]roleto project for.
template<class BaseNode, class RoleType>
RoleType* sesstype::SessionTmpl< BaseNode, RoleType >::role ( std::string  name) const [inline]

Retrieve a Role from the Session by name.

Parameters:
[in]nameof the Role.
Returns:
Role named name.
Exceptions:
std::out_of_rangeif not found.
template<class BaseNode, class RoleType>
BaseNode* sesstype::SessionTmpl< BaseNode, RoleType >::root ( ) const [inline]
Returns:
root Node of Session body.
template<class BaseNode, class RoleType>
void sesstype::SessionTmpl< BaseNode, RoleType >::set_endpoint ( RoleType *  endpoint) [inline]
Parameters:
[in]roleSets endpoint role to endpoint.
template<class BaseNode, class RoleType>
void sesstype::SessionTmpl< BaseNode, RoleType >::set_root ( BaseNode *  root) [inline]
Parameters:
[in]rootNode of Session body.
template<class BaseNode, class RoleType>
int sesstype::SessionTmpl< BaseNode, RoleType >::type ( ) const [inline]
Returns:
Session type (global or local).

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