ACT Library
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
Chan Class Reference

Used to represent the built-in ACT Paramterized chan(foo) type or chan(foo,foo) bi-directional/exchange channel. More...

#include <types.h>

Inheritance diagram for Chan:
Type

Public Member Functions

InstTypedatatype () const
 
InstTypeacktype () const
 
int isBiDirectional ()
 
- Public Member Functions inherited from Type
 Type ()
 
 ~Type ()
 constructor
 
virtual const char * getName ()=0
 destructor
 
virtual TypeExpand (ActNamespace *ns, Scope *s, int nt, inst_param *ip)=0
 
virtual int isEqual (const Type *t) const =0
 

Private Member Functions

const char * getName ()
 
ChanExpand (ActNamespace *ns, Scope *s, int nt, inst_param *u)
 
int isEqual (const Type *t) const
 

Private Attributes

const char * name
 the string name for the type
 
InstTypep
 data type for expanded channel
 
InstTypeack
 second data type for exchange channel
 

Friends

class TypeFactory
 

Additional Inherited Members

- Public Types inherited from Type
enum  direction {
  NONE = 0 , IN = 1 , OUT = 2 , INOUT = 3 ,
  OUTIN = 4
}
 
- Static Public Member Functions inherited from Type
static void Init ()
 
static const char * dirstring (direction d)
 

Detailed Description

Used to represent the built-in ACT Paramterized chan(foo) type or chan(foo,foo) bi-directional/exchange channel.

Member Function Documentation

◆ acktype()

InstType * Chan::acktype ( ) const
inline
Returns
the "acknowledge" data type, the backward direction

◆ datatype()

InstType * Chan::datatype ( ) const
inline
Returns
the channel data type

◆ Expand()

Chan * Chan::Expand ( ActNamespace ns,
Scope s,
int  nt,
inst_param u 
)
privatevirtual

Expand the channel type. The number of tempate parameters is either 1 (normal channel) or 2 (bi-directional/exchange channel).

Parameters
nsis the namespace
sis the scope
ntis the number of template parameters
uholds type parameters

Implements Type.

◆ getName()

const char * Chan::getName ( )
privatevirtual
Returns
the name of the type

Implements Type.

◆ isBiDirectional()

int Chan::isBiDirectional ( )
inline
Returns
1 if this is a bi-directional channel, 0 otherwise

◆ isEqual()

int Chan::isEqual ( const Type t) const
privatevirtual
Returns
1 if t is equal to this type, 0 otherwise

Implements Type.

Friends And Related Function Documentation

◆ TypeFactory

friend class TypeFactory
friend

Member Data Documentation

◆ ack

InstType* Chan::ack
private

second data type for exchange channel

◆ name

const char* Chan::name
private

the string name for the type

◆ p

InstType* Chan::p
private

data type for expanded channel


The documentation for this class was generated from the following file: