Collaboration diagram for CProcessData:
Public Member Functions | |
void | Construct (IMemory *m, CStringManager *s) |
This function readies the CProcessObject for use. | |
void | Destruct () |
The Destruct funtion cleans up the internall structure of the process. | |
void | Finalize () |
The finalize breaks the possibly circular links betweem the process and the global scope, interpreter exception, and undef objects. | |
void | SetBasics (CThing *u, CThing *i) |
The set basics function sets the undef and interpterexception values. | |
Public Attributes | |
long | references |
The number of references to this process. | |
IMemory * | manager |
The memory manager used by this process. | |
CStringManager * | strings |
The string manager for this process. | |
CScope * | globalscope |
The global scope. | |
unsigned long | processid |
A number that at one time was to uniqely identify the process, depriciated. | |
HANDLE | mutex |
A unique mutex for the process. | |
CDllManager | dlls |
The dll manager for the process. | |
CThing * | undef |
The undef rebi. | |
CThing * | interpterexception |
The interpreterexception rebi. |
The CProcessData class contains the global scope, the string table, the interpreter exception and undef values. This class is also reference counted, however because everything references the process data it is necessary to break the global scope, the interpreter exception and undef links manually when closing the process, otherwise the process will be gaurenteed to always have references.
|
This function readies the CProcessObject for use. It also calls the srand function, creates the globalscope, and initializes the dll manager.
|
|
The Destruct funtion cleans up the internall structure of the process. The string manager is also freed by the Destruct function, you should not delete it yourself or share it with other processes. |
|
The set basics function sets the undef and interpterexception values. The reference counts for these two values are not adjusted. Also no checks are made to see if these values are already set.
|