#include <register.h>
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) |
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.
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.
EntryInfo::~EntryInfo | ( | ) | [inline] |
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.
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().
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 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().