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)

Data Fields

const char * name
 Human-readable name of entry method, including parameters.
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.
CmiBool traceEnabled
 Charm++ Tracing enabled for this ep (can change dynamically).
CmiBool noKeep
 Method doesn't keep (and delete) message passed in to it.
CmiBool inCharm
 true if this EP is charm internal functions
CmiBool isMemCritical
 true if this EP is used to be rescheduled when adjusting memory usage
CkMarshallUnpackFn marshallUnpack
 A "marshall unpack" function: 1.
CkMessagePupFn messagePup
 A "message pup" function pups the message accepted by this entry point.

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 22 of file register.h.


Constructor & Destructor Documentation

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

Definition at line 88 of file register.h.

References CmiFalse, CmiTrue, inCharm, noKeep, and traceEnabled.


Field Documentation

const char* EntryInfo::name

Human-readable name of entry method, including parameters.

Definition at line 25 of file register.h.

Referenced by _call_freeze_on_break_point(), CkPrintEntryMethod(), CpdRemoveAllBreakPoints(), and CpdRemoveBreakPoint().

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 50 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 52 of file register.h.

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

Our chare's index into the _chareTable.

Definition at line 54 of file register.h.

Referenced by CkPrintEntryMethod().

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

Definition at line 56 of file register.h.

Referenced by CkRegisterEp(), and EntryInfo().

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

Definition at line 58 of file register.h.

Referenced by CkRegisterEp(), and EntryInfo().

true if this EP is charm internal functions

Definition at line 60 of file register.h.

Referenced by CkRegisterEp(), and EntryInfo().

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

Definition at line 64 of file register.h.

Referenced by CkRegisterEp().

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 74 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 86 of file register.h.


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

Generated on Fri May 25 08:03:05 2012 for Charm++ by  doxygen 1.5.5