PPL Logo

xi::Chare Class Reference

#include <xi-Chare.h>

Inheritance diagram for xi::Chare:

Inheritance graph
[legend]
Collaboration diagram for xi::Chare:

Collaboration graph
[legend]

Public Types

enum  {
  CMIGRATABLE = 1 << 2, CPYTHON = 1 << 3, CCHARE = 1 << 9, CMAINCHARE = 1 << 10,
  CARRAY = 1 << 11, CGROUP = 1 << 12, CNODEGROUP = 1 << 13
}
typedef unsigned int attrib_t

Public Member Functions

 Chare (int ln, attrib_t Nattr, NamedType *t, TypeList *b=0, AstChildren< Member > *l=0)
void genProxyNamesExceptFirst (XStr &str, const char *prefix, const char *middle, const char *suffix, const char *sep)
void genProxyNames (XStr &str, const char *prefix, const char *middle, const char *suffix, const char *sep)
void genIndexNames (XStr &str, const char *prefix, const char *middle, const char *suffix, const char *sep)
void printChareNames ()
XStr proxyName (int withTemplates=1)
XStr indexName (int withTemplates=1)
XStr sectionName (int withTemplates=1)
XStr indexList ()
XStr baseName (int withTemplates=1) const
XStr cbaseTType ()
int isTemplated (void)
bool isTemplateDeclaration ()
bool isTemplateInstantiation ()
int isMigratable (void)
int isPython (void)
int isMainChare (void)
int isChare (void)
int isArray (void)
int isGroup (void)
int isNodeGroup (void)
int isForElement (void) const
int isForSection (void) const
int hasSdag () const
void setSdag (int f)
forWhom getForWhom (void) const
void print (XStr &str)
void check ()
void genDefs (XStr &str)
void genReg (XStr &str)
void genDecls (XStr &str)
void genGlobalCode (XStr scope, XStr &decls, XStr &defs)
void genRecursivePup (XStr &scopedName, XStr templateSpec, XStr &decls, XStr &defs)
void preprocess ()
bool isTramTarget ()
void genTramTypes ()
void genTramDecls (XStr &str)
void genTramInits (XStr &str)
int genAccels_spe_c_funcBodies (XStr &str)
void genAccels_spe_c_regFuncs (XStr &str)
void genAccels_spe_c_callInits (XStr &str)
void genAccels_spe_h_includes (XStr &str)
void genAccels_spe_h_fiCountDefs (XStr &str)
void genAccels_ppe_c_regFuncs (XStr &str)
int nextEntry (void)
virtual void genSubDecls (XStr &str)
virtual void outputClosuresDecl (XStr &str)
virtual void outputClosuresDef (XStr &str)
virtual void genClosureEntryDecls (XStr &str)
virtual void genClosureEntryDefs (XStr &str)
void genPythonDecls (XStr &str)
void genPythonDefs (XStr &str)
virtual char * chareTypeName (void)
virtual char * proxyPrefix (void)
virtual void genSubRegisterMethodDef (XStr &str)
void lookforCEntry (CEntry *centry)

Data Fields

XStr sdagPUPReg
XStr sdagDefs
XStr closuresDecl
XStr closuresDef
std::vector< TramInfotramInstances
bool generateTramInits
NamedTypetype

Protected Member Functions

void genTypedefs (XStr &str)
void genRegisterMethodDef (XStr &str)
void sharedDisambiguation (XStr &str, const XStr &superclass)
void genMemberDecls (XStr &str)

Protected Attributes

attrib_t attrib
int hasElement
forWhom forElement
int hasSection
TypeListbases
TypeListbases_CBase
int entryCount
int hasSdagEntry

Private Member Functions

XStr virtualPupDef (const XStr &name)

Private Attributes

AstChildren< Member > * list

Detailed Description

Definition at line 22 of file xi-Chare.h.


Member Typedef Documentation

typedef unsigned int xi::Chare::attrib_t

Definition at line 36 of file xi-Chare.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
CMIGRATABLE 
CPYTHON 
CCHARE 
CMAINCHARE 
CARRAY 
CGROUP 
CNODEGROUP 

Definition at line 27 of file xi-Chare.h.


Constructor & Destructor Documentation

Chare::Chare ( int  ln,
attrib_t  Nattr,
NamedType t,
TypeList b = 0,
AstChildren< Member > *  l = 0 
)

Definition at line 31 of file xi-Chare.C.

References bases_CBase, entryCount, xi::forAll, forElement, hasElement, hasSdagEntry, hasSection, xi::AstNode::line, and xi::TEntity::setTemplate().

Here is the call graph for this function:


Member Function Documentation

void Chare::genTypedefs ( XStr str  )  [protected]

Definition at line 541 of file xi-Chare.C.

References Prefix::Index, Prefix::Proxy, Prefix::ProxyElement, and Prefix::ProxySection.

Referenced by xi::Array::genSubDecls().

Here is the caller graph for this function:

void Chare::genRegisterMethodDef ( XStr str  )  [protected]

Definition at line 49 of file xi-Chare.C.

References xi::internalMode, list, xi::templateGuardBegin(), xi::templateGuardEnd(), and type.

Here is the call graph for this function:

void Chare::sharedDisambiguation ( XStr str,
const XStr superclass 
) [protected]

Definition at line 512 of file xi-Chare.C.

References Prefix::Index, and type.

Referenced by xi::Array::genSubDecls().

Here is the caller graph for this function:

void Chare::genMemberDecls ( XStr str  )  [protected]

Definition at line 382 of file xi-Chare.C.

References list.

Referenced by xi::Array::genSubDecls().

Here is the caller graph for this function:

void Chare::genProxyNamesExceptFirst ( XStr str,
const char *  prefix,
const char *  middle,
const char *  suffix,
const char *  sep 
)

Definition at line 493 of file xi-Chare.C.

References xi::TypeList::genProxyNames().

Referenced by xi::Array::genSubDecls().

Here is the call graph for this function:

Here is the caller graph for this function:

void Chare::genProxyNames ( XStr str,
const char *  prefix,
const char *  middle,
const char *  suffix,
const char *  sep 
)

Definition at line 499 of file xi-Chare.C.

Referenced by xi::Array::genSubDecls().

Here is the caller graph for this function:

void Chare::genIndexNames ( XStr str,
const char *  prefix,
const char *  middle,
const char *  suffix,
const char *  sep 
)

Definition at line 504 of file xi-Chare.C.

References xi::forIndex.

void Chare::printChareNames (  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 447 of file xi-Chare.C.

References endl().

Here is the call graph for this function:

XStr Chare::proxyName ( int  withTemplates = 1  ) 

XStr Chare::indexName ( int  withTemplates = 1  ) 

XStr Chare::sectionName ( int  withTemplates = 1  ) 

Definition at line 464 of file xi-Chare.C.

References Prefix::ProxySection, and type.

Referenced by xi::Member::makeDecl().

Here is the caller graph for this function:

XStr Chare::indexList (  ) 

Definition at line 471 of file xi-Chare.C.

Referenced by xi::Entry::genDefs().

Here is the caller graph for this function:

XStr xi::Chare::baseName ( int  withTemplates = 1  )  const [inline]

XStr Chare::cbaseTType (  ) 

Definition at line 902 of file xi-Chare.C.

References PUP::b, xi::TypeList::length(), Prefix::Python, and type.

Here is the call graph for this function:

int xi::Chare::isTemplated ( void   )  [inline]

bool xi::Chare::isTemplateDeclaration (  )  [inline]

Definition at line 82 of file xi-Chare.h.

References xi::TEntity::templat.

bool xi::Chare::isTemplateInstantiation (  )  [inline]

Definition at line 83 of file xi-Chare.h.

References xi::NamedType::isTemplated(), and type.

Here is the call graph for this function:

int xi::Chare::isMigratable ( void   )  [inline]

Definition at line 84 of file xi-Chare.h.

References attrib, and CMIGRATABLE.

int xi::Chare::isPython ( void   )  [inline]

Definition at line 85 of file xi-Chare.h.

References attrib, and CPYTHON.

Referenced by xi::Entry::check().

Here is the caller graph for this function:

int xi::Chare::isMainChare ( void   )  [inline]

Definition at line 86 of file xi-Chare.h.

References attrib, and CMAINCHARE.

Referenced by xi::Entry::check(), xi::Entry::genCall(), xi::Entry::genDefs(), xi::Entry::genReg(), and xi::Entry::setChare().

Here is the caller graph for this function:

int xi::Chare::isChare ( void   )  [inline]

Definition at line 87 of file xi-Chare.h.

References attrib, and CCHARE.

Referenced by xi::Entry::check(), xi::Entry::genDefs(), and xi::ParamList::marshall().

Here is the caller graph for this function:

int xi::Chare::isArray ( void   )  [inline]

int xi::Chare::isGroup ( void   )  [inline]

int xi::Chare::isNodeGroup ( void   )  [inline]

Definition at line 90 of file xi-Chare.h.

References attrib, and CNODEGROUP.

Referenced by xi::Entry::check(), xi::Entry::genGroupDecl(), xi::Entry::genGroupDefs(), xi::Entry::genGroupStaticConstructorDefs(), xi::Group::Group(), and xi::Entry::preprocessSDAG().

Here is the caller graph for this function:

int xi::Chare::isForElement ( void   )  const [inline]

int xi::Chare::isForSection ( void   )  const [inline]

int xi::Chare::hasSdag (  )  const [inline]

Definition at line 93 of file xi-Chare.h.

References hasSdagEntry.

void xi::Chare::setSdag ( int  f  )  [inline]

Definition at line 94 of file xi-Chare.h.

References hasSdagEntry.

Referenced by xi::Entry::setChare().

Here is the caller graph for this function:

forWhom xi::Chare::getForWhom ( void   )  const [inline]

Definition at line 95 of file xi-Chare.h.

References forElement.

Referenced by xi::Entry::genArrayStaticConstructorDecl(), xi::Entry::genArrayStaticConstructorDefs(), and xi::Entry::genDefs().

Here is the caller graph for this function:

void Chare::print ( XStr str  )  [virtual]

Implements xi::Printable.

Definition at line 936 of file xi-Chare.C.

References list, xi::XStr::print(), and type.

Here is the call graph for this function:

void Chare::check ( void   )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 43 of file xi-Chare.C.

References list.

void Chare::genDefs ( XStr str  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 556 of file xi-Chare.C.

References PUP::b, xi::forAll, xi::forIndividual, xi::forSection, xi::fortranify(), xi::fortranMode, xi::TypeList::length(), list, print(), Prefix::Python, PUP::t, xi::templateGuardBegin(), xi::templateGuardEnd(), and type.

Here is the call graph for this function:

void Chare::genReg ( XStr str  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 923 of file xi-Chare.C.

References list, print(), and type.

Here is the call graph for this function:

void Chare::genDecls ( XStr str  )  [virtual]

void Chare::genGlobalCode ( XStr  scope,
XStr decls,
XStr defs 
) [virtual]

Reimplemented from xi::AstNode.

Definition at line 291 of file xi-Chare.C.

References list, xi::templateGuardBegin(), xi::templateGuardEnd(), and type.

Here is the call graph for this function:

void Chare::genRecursivePup ( XStr scopedName,
XStr  templateSpec,
XStr decls,
XStr defs 
)

Definition at line 269 of file xi-Chare.C.

References xi::templateGuardBegin(), and xi::templateGuardEnd().

Referenced by xi::Entry::genTramPups().

Here is the call graph for this function:

Here is the caller graph for this function:

void Chare::preprocess (  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 218 of file xi-Chare.C.

References isMigratable(), list, xi::Entry::setChare(), and type.

Here is the call graph for this function:

bool Chare::isTramTarget ( void   )  [virtual]

Reimplemented from xi::Construct.

Definition at line 958 of file xi-Chare.C.

References list.

void Chare::genTramTypes (  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 965 of file xi-Chare.C.

References list.

void Chare::genTramDecls ( XStr str  ) 

Definition at line 971 of file xi-Chare.C.

Referenced by xi::Array::genSubDecls().

Here is the caller graph for this function:

void Chare::genTramInits ( XStr str  ) 

Definition at line 982 of file xi-Chare.C.

Referenced by xi::Array::genSubDecls().

Here is the caller graph for this function:

int xi::Chare::genAccels_spe_c_funcBodies ( XStr str  )  [inline, virtual]

Reimplemented from xi::AstNode.

Definition at line 111 of file xi-Chare.h.

References list.

void xi::Chare::genAccels_spe_c_regFuncs ( XStr str  )  [inline, virtual]

Reimplemented from xi::AstNode.

Definition at line 118 of file xi-Chare.h.

References list.

void xi::Chare::genAccels_spe_c_callInits ( XStr str  )  [inline, virtual]

Reimplemented from xi::AstNode.

Definition at line 123 of file xi-Chare.h.

References list.

void xi::Chare::genAccels_spe_h_includes ( XStr str  )  [inline, virtual]

Reimplemented from xi::AstNode.

Definition at line 128 of file xi-Chare.h.

References list.

void xi::Chare::genAccels_spe_h_fiCountDefs ( XStr str  )  [inline, virtual]

Reimplemented from xi::AstNode.

Definition at line 133 of file xi-Chare.h.

References list.

void xi::Chare::genAccels_ppe_c_regFuncs ( XStr str  )  [inline, virtual]

Reimplemented from xi::AstNode.

Definition at line 138 of file xi-Chare.h.

References list.

int xi::Chare::nextEntry ( void   )  [inline]

Definition at line 144 of file xi-Chare.h.

References entryCount.

Referenced by xi::Entry::setChare().

Here is the caller graph for this function:

void Chare::genSubDecls ( XStr str  )  [virtual]

Reimplemented in xi::Array, and xi::Group.

Definition at line 329 of file xi-Chare.C.

References xi::CIClassEnd, xi::CIClassStart, xi::disambig_proxy(), and type.

Here is the call graph for this function:

void Chare::outputClosuresDecl ( XStr str  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 103 of file xi-Chare.C.

void Chare::outputClosuresDef ( XStr str  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 105 of file xi-Chare.C.

void Chare::genClosureEntryDecls ( XStr str  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 316 of file xi-Chare.C.

References xi::CIClassEnd, xi::CIClassStart, list, and type.

void Chare::genClosureEntryDefs ( XStr str  )  [virtual]

Reimplemented from xi::AstNode.

Definition at line 325 of file xi-Chare.C.

References list.

void Chare::genPythonDecls ( XStr str  ) 

Definition at line 386 of file xi-Chare.C.

References PUP::b, xi::CIClassEnd, xi::CIClassStart, xi::forPython, xi::TypeList::genProxyNames(), list, Prefix::Python, and type.

Here is the call graph for this function:

void Chare::genPythonDefs ( XStr str  ) 

Definition at line 429 of file xi-Chare.C.

References list, Prefix::Python, and type.

virtual char* xi::Chare::chareTypeName ( void   )  [inline, virtual]

Reimplemented in xi::MainChare, xi::Array, xi::Group, and xi::NodeGroup.

Definition at line 152 of file xi-Chare.h.

char * Chare::proxyPrefix ( void   )  [virtual]

Definition at line 509 of file xi-Chare.C.

References xi::forWhomStr().

Referenced by xi::Array::genSubDecls().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void xi::Chare::genSubRegisterMethodDef ( XStr str  )  [inline, virtual]

Reimplemented in xi::Group.

Definition at line 154 of file xi-Chare.h.

void Chare::lookforCEntry ( CEntry centry  ) 

Definition at line 954 of file xi-Chare.C.

References list.

Referenced by xi::Entry::check(), xi::CParsedFile::mapCEntry(), and xi::Entry::setChare().

Here is the caller graph for this function:

XStr Chare::virtualPupDef ( const XStr name  )  [private]

Definition at line 261 of file xi-Chare.C.


Field Documentation

Definition at line 37 of file xi-Chare.h.

Referenced by xi::Entry::genClosure(), and xi::CParsedFile::generateRegisterEp().

Definition at line 38 of file xi-Chare.h.

Definition at line 38 of file xi-Chare.h.

Referenced by xi::Template::outputClosuresDecl().

Definition at line 38 of file xi-Chare.h.

Referenced by xi::Template::outputClosuresDef().

Definition at line 39 of file xi-Chare.h.

Referenced by xi::Entry::genTramInstantiation(), and xi::Entry::genTramTypes().

Definition at line 40 of file xi-Chare.h.

Definition at line 44 of file xi-Chare.h.

Referenced by isArray(), isChare(), isGroup(), isMainChare(), isMigratable(), isNodeGroup(), and isPython().

Definition at line 45 of file xi-Chare.h.

Referenced by xi::Array::Array(), Chare(), and xi::Group::Group().

Definition at line 47 of file xi-Chare.h.

Referenced by xi::Array::Array(), Chare(), and xi::Group::Group().

TypeList* xi::Chare::bases [protected]

Definition at line 49 of file xi-Chare.h.

Referenced by xi::Array::Array(), xi::Array::genSubDecls(), and xi::Group::Group().

Definition at line 50 of file xi-Chare.h.

Referenced by xi::Array::Array(), Chare(), and xi::Group::Group().

Definition at line 52 of file xi-Chare.h.

Referenced by Chare(), and nextEntry().

Definition at line 53 of file xi-Chare.h.

Referenced by Chare(), hasSdag(), and setSdag().


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

Generated on Mon Sep 21 08:34:58 2020 for Charm++ by  doxygen 1.5.5