PPL Logo

EntryInfo Class Reference
[CkRegister]

Represents a single entry method or constructor. More...

#include <register.h>

Collaboration diagram for EntryInfo:

Collaboration graph
[legend]

Public Member Functions

 EntryInfo (const char *n, CkCallFnPtr c, int m, int ci, bool ownsN=false)
 ~EntryInfo ()
void setName (const char *new_name)
 For changing the name after initialization.

Data Fields

CkCallFnPtr call
 A "call function" is how Charm++ actually invokes an entry method on an object.
int msgIdx
 Our parameters' index into the _msgTable.
int chareIdx
 Our chare's index into the _chareTable.
CkMarshallUnpackFn marshallUnpack
 A "marshall unpack" function: 1.
CkMessagePupFn messagePup
 A "message pup" function pups the message accepted by this entry point.
bool traceEnabled
 Charm++ Tracing enabled for this ep (can change dynamically).
bool noKeep
 Method doesn't keep (and delete) message passed in to it.
bool isImmediate
 Method is an immediate entry method and can bypass scheduler.
bool isInline
 Method is an inline entry method and can bypass scheduler and execute inline.
bool inCharm
 true if this EP is charm internal functions
bool appWork
bool ownsName
bool isMemCritical
 true if this EP is used to be rescheduled when adjusting memory usage
const char * name
 Human-readable name of entry method, including parameters.

Private Member Functions

void initName (const char *new_name)

Detailed Description

Represents a single entry method or constructor.

EntryInfo's are always stored in the _entryTable, and can be referred to across processors by their index into the _entryTable--this is the entry point's index, often abbreviated "epIdx".

Although this class is always created via a clean, well-defined API (the CkRegister* routines in charm.h); access to these classes is completely direct-- the ck.C routines just access, e.g., _entryTable[epIdx]->chareIdx.

Definition at line 26 of file register.h.


Constructor & Destructor Documentation

EntryInfo::EntryInfo ( const char *  n,
CkCallFnPtr  c,
int  m,
int  ci,
bool  ownsN = false 
) [inline]

Definition at line 101 of file register.h.

References initName(), and ownsName.

Here is the call graph for this function:

EntryInfo::~EntryInfo (  )  [inline]

Definition at line 113 of file register.h.

References name, and ownsName.


Member Function Documentation

void EntryInfo::setName ( const char *  new_name  )  [inline]

For changing the name after initialization.

Definition at line 119 of file register.h.

References initName(), name, and ownsName.

Here is the call graph for this function:

void EntryInfo::initName ( const char *  new_name  )  [inline, private]

Definition at line 127 of file register.h.

References len, name, and ownsName.

Referenced by EntryInfo(), and setName().

Here is the caller graph for this function:


Field Documentation

A "call function" is how Charm++ actually invokes an entry method on an object.

Call functions take two parameters: 1.) The message to pass to the method. This may be a regular message, a CkMarshallMsg for a parameter-marshalled method, or a "SysMsg" for a void method. For migration constructors, the "message" might even be NULL. 2.) The object to invoke the method on. Call functions are always generated by the translator.

A simple call function to invoke a method foo::bar(fooMsg *) might look like this:

        extern "C" void __call_foo_bar(void *msg,void *obj) {
           fooMsg *m=(fooMsg *)msg;
           foo *f=(foo *)obj;
           f->bar(m);
        }
        
Call functions are even used to invoke constructors on new Chares.

Definition at line 51 of file register.h.

Referenced by _call_freeze_on_break_point(), CpdContinueFromBreakPoint(), CpdDeliverSingleMessage(), CpdRemoveAllBreakPoints(), and CpdRemoveBreakPoint().

Our parameters' index into the _msgTable.

Definition at line 53 of file register.h.

Referenced by CpdRemoveAllBreakPoints(), CpdRemoveBreakPoint(), and CpdSetBreakPoint().

Our chare's index into the _chareTable.

Definition at line 55 of file register.h.

Referenced by CkPrintEntryMethod().

A "marshall unpack" function: 1.

) Pups method parameters out of the buffer passed in to it. 2.) Calls a method on the object passed in. 3.) Returns the number of bytes of the buffer consumed. It can be used for very efficient delivery of a whole set of combined messages.

Definition at line 65 of file register.h.

A "message pup" function pups the message accepted by this entry point.

This is *only* used to display the message in the debugger, not for normal communication.

This is registered with the entry point (not the message) because many entry points take the same message type but store different data in it, like parameter marshalled messages.

Definition at line 78 of file register.h.

Charm++ Tracing enabled for this ep (can change dynamically).

Definition at line 82 of file register.h.

Referenced by CkRegisterEpInternal().

Method doesn't keep (and delete) message passed in to it.

Definition at line 84 of file register.h.

Referenced by CkRegisterEpInternal().

Method is an immediate entry method and can bypass scheduler.

Definition at line 86 of file register.h.

Referenced by CkRegisterEpInternal().

Method is an inline entry method and can bypass scheduler and execute inline.

Definition at line 88 of file register.h.

Referenced by CkRegisterEpInternal().

true if this EP is charm internal functions

Definition at line 90 of file register.h.

Referenced by CkRegisterEpInternal().

Definition at line 91 of file register.h.

Referenced by CkRegisterEpInternal().

Definition at line 92 of file register.h.

Referenced by EntryInfo(), initName(), setName(), and ~EntryInfo().

true if this EP is used to be rescheduled when adjusting memory usage

Definition at line 95 of file register.h.

Referenced by CkRegisterEpInternal().

const char* EntryInfo::name

Human-readable name of entry method, including parameters.

Definition at line 99 of file register.h.

Referenced by _call_freeze_on_break_point(), CkPrintEntryMethod(), CpdRemoveAllBreakPoints(), CpdRemoveBreakPoint(), initName(), setName(), and ~EntryInfo().


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

Generated on Mon Sep 21 08:23:03 2020 for Charm++ by  doxygen 1.5.5