libsesstype  2.0.0
Library for Session Types programming.
 All Classes Namespaces Files Functions
Public Member Functions | Friends
sesstype::parameterised::Role Class Reference

Parameterised Role (participant) of a protocol or session. More...

#include <role.h>

Inheritance diagram for sesstype::parameterised::Role:
Inheritance graph
[legend]
Collaboration diagram for sesstype::parameterised::Role:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Role ()
 Role constructor with "default" as name.
 Role (std::string name)
 Role constructor.
 Role (const Role &role)
 Role copy constructor.
 ~Role () override
 Role destructor.
Roleclone () const override
 clone a Role
unsigned int num_dimens () const
void add_param (Expr *param)
Exproperator[] (std::size_t idx) const
virtual bool matches (sesstype::Role *other) const
 Check if this Role is/is in another Role.
virtual void accept (util::RoleVisitor &v)
 This subsumes accept in base class (but RoleVisitor is not a subclass)

Friends

std::ostream & operator<< (std::ostream &os, Role &role)

Detailed Description

Parameterised Role (participant) of a protocol or session.


Member Function Documentation

void sesstype::parameterised::Role::add_param ( Expr param) [inline]
Parameters:
[in]paramAdds parameter as a new dimension to the Role.
virtual bool sesstype::parameterised::Role::matches ( sesstype::Role other) const [inline, virtual]

Check if this Role is/is in another Role.

Returns:
true if this Role is/is in another Role.

Reimplemented from sesstype::Role.

Reimplemented in sesstype::parameterised::RoleGrp.

unsigned int sesstype::parameterised::Role::num_dimens ( ) const [inline]
Returns:
Number of dimensions in the parameterised Role.
Expr* sesstype::parameterised::Role::operator[] ( std::size_t  idx) const [inline]
Parameters:
[in]idxDimension index of parameterised Role.
Returns:
expression at dimension idx.
Exceptions:
std::out_of_rangeif dimension idx does not exist.

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