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

Interaction (message-passing) statements. More...

#include <interaction.h>

List of all members.

Public Types

typedef std::vector< RoleType * > RoleContainer

Public Member Functions

 InteractionNodeTmpl ()
 InteractionNode constructor with empty MsgSig.
 InteractionNodeTmpl (MessageType *msg)
 InteractionNode constructor.
 InteractionNodeTmpl (const InteractionNodeTmpl &node)
 InteractionNode copy constructor.
 ~InteractionNodeTmpl () override
 InteractionNode destructor.
InteractionNodeTmplclone () const override
 clone a InteractionNode.
void set_msg (MessageType *msg)
 Replace Msgsig of InteractionNode.
MessageType * msg () const
void set_sndr (RoleType *sndr)
RoleType * sndr () const
void remove_sndr ()
 Remove from Role.
void add_rcvr (RoleType *rcvr)
unsigned int num_rcvrs () const
RoleType * rcvr () const
 Convenient function to return the first to Role.
RoleType * rcvr (unsigned int idx) const
void remove_rcvrs ()
 Remove to Role (all of them);.
RoleContainer::const_iterator rcvr_begin () const
 Start iterator for to Role.
RoleContainer::const_iterator rcvr_end () const
 End iterator for to Role.
void accept (VisitorType &v) override

Detailed Description

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

Interaction (message-passing) statements.

InteractionNode also encapsulates send-only and receive-only statements.


Constructor & Destructor Documentation

template<class BaseNode, class RoleType, class MessageType, class VisitorType>
sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::InteractionNodeTmpl ( MessageType *  msg) [inline]

InteractionNode constructor.

Parameters:
[in]msgsigfor the interaction.

Member Function Documentation

template<class BaseNode, class RoleType, class MessageType, class VisitorType>
void sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::add_rcvr ( RoleType *  rcvr) [inline]
Parameters:
[in]toRole to add to this InteractionNode.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
MessageType* sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::msg ( ) const [inline]
Returns:
message signature of InteractionNode.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
unsigned int sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::num_rcvrs ( ) const [inline]
Returns:
number of to Role.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
RoleType* sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::rcvr ( ) const [inline]

Convenient function to return the first to Role.

Returns:
the first to Role of InteractionNode.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
RoleType* sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::rcvr ( unsigned int  idx) const [inline]
Returns:
indexth to Role of InteractionNode.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
void sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::set_msg ( MessageType *  msg) [inline]

Replace Msgsig of InteractionNode.

Parameters:
[in]msgsigof InteractionNode to replace with.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
void sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::set_sndr ( RoleType *  sndr) [inline]
Parameters:
[in]fromRole of InteractionNode.
template<class BaseNode, class RoleType, class MessageType, class VisitorType>
RoleType* sesstype::InteractionNodeTmpl< BaseNode, RoleType, MessageType, VisitorType >::sndr ( ) const [inline]
Returns:
from Role of InteractionNode.

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