User-defined channel type. Channels can be unidirectional or bi-directional (sometimes called exchange channels).
More...
|
| Channel (UserDef *u) |
|
virtual | ~Channel () |
|
void | setMethod (int t, act_chp_lang *h) |
|
void | setMethod (int t, Expr *e) |
|
act_chp_lang * | getMethod (int t) |
|
Expr * | geteMethod (int t) |
|
void | copyMethods (Channel *c) |
|
Channel * | Expand (ActNamespace *ns, Scope *s, int nt, inst_param *u) |
|
void | Print (FILE *fp) |
|
int | chanDir (ActId *id, int isinput) |
|
int | mustbeActiveSend () |
|
int | mustbeActiveRecv () |
|
int | isBiDirectional () |
|
| UserDef (ActNamespace *ns) |
|
| UserDef (UserDef *x) |
|
virtual | ~UserDef () |
| destructor, releases storage
|
|
const char * | getFile () |
|
void | setFile (const char *s) |
|
int | getLine () |
|
void | setLine (int num) |
|
int | IsExported () |
|
void | MkExported () |
|
int | isExpanded () const |
|
int | AddMetaParam (InstType *t, const char *id) |
|
int | AddPort (InstType *t, const char *id) |
|
int | FindPort (const char *id) |
|
const char * | getPortName (int pos) const |
|
InstType * | getPortType (int pos) const |
|
void | refinePortType (int pos, InstType *u) |
|
const char * | getName () |
|
char * | getFullName () |
|
void | printActName (FILE *fp) |
|
int | isEqual (const Type *t) const |
|
void | setName (const char *s) |
|
void | MkCopy (UserDef *u) |
|
int | isEqual (const UserDef *u) const |
|
void | SetParent (InstType *t) |
|
InstType * | getParent () const |
|
int | isDefined () |
|
void | MkDefined () |
|
int | isPort (const char *name) |
|
int | getNumParams () const |
|
int | getRemainingParams () const |
|
int | getNumPorts () const |
|
InstType * | Lookup (ActId *id) |
|
InstType * | Lookup (const char *nm) |
|
Scope * | CurScope () |
|
int | isStrictPort (const char *name) |
|
virtual void | Print (FILE *) |
|
void | PrintHeader (FILE *fp, const char *type) |
|
void | setBody (ActBody *x) |
|
void | AppendBody (ActBody *x) |
|
ActBody * | getBody () |
|
UserDef * | Expand (ActNamespace *, Scope *, int, inst_param *) |
|
UserDef * | Expand (ActNamespace *ns, Scope *s, int nt, inst_param *u, int *cache_hit, int is_process=0) |
|
ActNamespace * | getns () |
|
InstType * | root () const |
|
act_prs * | getprs () |
|
act_spec * | getspec () |
|
act_languages * | getlang () |
|
int | isLeaf () |
|
void | mkRefined () |
|
int | hasRefinement () |
|
UserMacro * | newMacro (const char *name) |
|
UserMacro * | getMacro (const char *name) |
|
| Type () |
|
| ~Type () |
| constructor
|
|
virtual const char * | getName ()=0 |
| destructor
|
|
virtual Type * | Expand (ActNamespace *ns, Scope *s, int nt, inst_param *ip)=0 |
|
virtual int | isEqual (const Type *t) const =0 |
|
|
enum | direction {
NONE = 0
, IN = 1
, OUT = 2
, INOUT = 3
,
OUTIN = 4
} |
|
static void | Init () |
|
static const char * | dirstring (direction d) |
|
int | emitMacros (FILE *fp) |
|
| A_DECL (UserMacro *, um) |
| user-defined macros
|
|
InstType * | parent |
| implementation relationship, if any
|
|
unsigned int | defined:1 |
| 1 if this has been defined, 0 otherwise
|
|
unsigned int | expanded:1 |
| 1 if this has been expanded, 0 otherwise
|
|
unsigned int | pending:1 |
| 1 if this is currently being expanded, 0 otherwise
|
|
unsigned int | exported:1 |
| 1 if the type is exported, 0 otherwise
|
|
act_languages * | lang |
| sub-languages within this type
|
|
int | nt |
| number of template parameters
|
|
InstType ** | pt |
| parameter types
|
|
const char ** | pn |
| parameter names
|
|
int | nports |
| number of ports
|
|
InstType ** | port_t |
| port types
|
|
const char ** | port_n |
| port names
|
|
Scope * | I |
| instances
|
|
const char * | name |
| Name of the user-defined type.
|
|
ActBody * | b |
| body of user-defined type
|
|
ActNamespace * | _ns |
| namespace within which this type is defined
|
|
UserDef * | unexpanded |
| unexpanded type, if any
|
|
int | level |
| default modeling level for the type
|
|
const char * | file |
| file name (if known) where this was defined
|
|
int | lineno |
| line number (if known) where this was defined
|
|
int | has_refinement |
| 1 if there is a refinement body
|
|
int | inherited_templ |
| number of inherited template parameters
|
|
inst_param ** | inherited_param |
| the inherited parameters
|
|
User-defined channel type. Channels can be unidirectional or bi-directional (sometimes called exchange channels).
int Channel::chanDir |
( |
ActId * |
id, |
|
|
int |
isinput |
|
) |
| |
Check the direction flags for an identifier that is part of the channel.
Given that the id has the direction specified, what is the channel direction? 1 = input, 2 = output, 3 = both, 0 = undetermined id is typically a fragmented piece of the channel, and hence this involves examining the channel methods as well.
- Parameters
-
id | is the part of the channel to be inspected |
isinput | is 1 to check on the direction of the type assuming a "?" operation, 0 if it is a "!" operation |
- Returns
- 0, 1, 2, or 3 (see above).