UCProcess Class Reference

#include <UCProcess.h>

Inheritance diagram for UCProcess:

Process List of all members.

Public Member Functions

 UCProcess ()
 UCProcess (uint16 classid_, uint16 offset_, uint32 this_ptr=0, int thissize=0, const uint8 *args=0, int argsize=0)
 ~UCProcess ()
 ENABLE_RUNTIME_CLASSTYPE ()
virtual bool run (const uint32 framenum)
virtual void terminate ()
void freeOnTerminate (uint16 index, int type)
void setReturnValue (uint32 retval)
virtual void dumpInfo ()
bool loadData (IDataSource *ids, uint32 version)

Protected Member Functions

virtual void saveData (ODataSource *ods)
void load (uint16 classid_, uint16 offset_, uint32 this_ptr=0, int thissize=0, const uint8 *args=0, int argsize=0)
void call (uint16 classid_, uint16 offset_)
bool ret ()

Protected Attributes

uint16 bp
Usecodeusecode
uint16 classid
uint16 ip
uint32 temp32
UCStack stack
std::list< std::pair< uint16,
int > > 
freeonterminate

Friends

class UCMachine
class Kernel

Detailed Description

Definition at line 32 of file UCProcess.h.


Constructor & Destructor Documentation

UCProcess::UCProcess (  ) 

Definition at line 31 of file UCProcess.cpp.

References GameData::get_instance(), GameData::getMainUsecode(), and usecode.

UCProcess::UCProcess ( uint16  classid_,
uint16  offset_,
uint32  this_ptr = 0,
int  thissize = 0,
const uint8 args = 0,
int  argsize = 0 
)

Definition at line 36 of file UCProcess.cpp.

References bp, classid, GameData::get_instance(), GameData::getMainUsecode(), ip, load(), temp32, and usecode.

UCProcess::~UCProcess (  ) 

Definition at line 49 of file UCProcess.cpp.


Member Function Documentation

void UCProcess::call ( uint16  classid_,
uint16  offset_ 
) [protected]

Definition at line 94 of file UCProcess.cpp.

References bp, classid, BaseUCStack::getSP(), ip, BaseUCStack::push2(), and stack.

Referenced by UCMachine::execProcess(), and load().

void UCProcess::dumpInfo (  )  [virtual]

dump some info about this process to pout

Reimplemented from Process.

Definition at line 156 of file UCProcess.cpp.

References classid, Process::dumpInfo(), GameData::get_instance(), GameData::getMainUsecode(), ip, and pout.

UCProcess::ENABLE_RUNTIME_CLASSTYPE (  ) 

Reimplemented from Process.

void UCProcess::freeOnTerminate ( uint16  index,
int  type 
)

Definition at line 119 of file UCProcess.cpp.

References freeonterminate.

Referenced by UCMachine::execProcess().

void UCProcess::load ( uint16  classid_,
uint16  offset_,
uint32  this_ptr = 0,
int  thissize = 0,
const uint8 args = 0,
int  argsize = 0 
) [protected]

Definition at line 54 of file UCProcess.cpp.

References BaseUCStack::access(), BaseUCStack::addSP(), bp, call(), classid, Usecode::get_class_size(), UCMachine::get_instance(), BaseUCStack::getSP(), ip, perr, Process::pid, BaseUCStack::push(), BaseUCStack::push4(), stack, UCMachine::stackToPtr(), and usecode.

Referenced by UCProcess().

bool UCProcess::loadData ( IDataSource ids,
uint32  version 
)

load Process data

Reimplemented from Process.

Definition at line 187 of file UCProcess.cpp.

References bp, classid, freeonterminate, ip, UCStack::load(), Process::loadData(), stack, and temp32.

bool UCProcess::ret (  )  [protected]

Definition at line 105 of file UCProcess.cpp.

References bp, classid, ip, BaseUCStack::pop2(), BaseUCStack::setSP(), and stack.

Referenced by UCMachine::execProcess().

bool UCProcess::run ( const uint32  framenum  )  [virtual]

Implements Process.

Definition at line 84 of file UCProcess.cpp.

References UCMachine::execProcess(), Process::flags, UCMachine::get_instance(), and Process::PROC_SUSPENDED.

void UCProcess::saveData ( ODataSource ods  )  [protected, virtual]

save the Process data

Reimplemented from Process.

Definition at line 169 of file UCProcess.cpp.

References bp, classid, freeonterminate, ip, UCStack::save(), Process::saveData(), stack, temp32, ODataSource::write2(), and ODataSource::write4().

void UCProcess::setReturnValue ( uint32  retval  )  [inline]

Definition at line 51 of file UCProcess.h.

References temp32.

void UCProcess::terminate (  )  [virtual]

terminate the process. This wakes up all processes waiting for it.

Reimplemented from Process.

Definition at line 130 of file UCProcess.cpp.

References UCMachine::freeList(), freeonterminate, UCMachine::freeString(), UCMachine::freeStringList(), UCMachine::get_instance(), Process::terminate(), and Process::type.


Friends And Related Function Documentation

friend class Kernel [friend]

Reimplemented from Process.

Definition at line 35 of file UCProcess.h.

friend class UCMachine [friend]

Definition at line 34 of file UCProcess.h.


Member Data Documentation

uint16 UCProcess::bp [protected]

Definition at line 66 of file UCProcess.h.

Referenced by call(), UCMachine::execProcess(), load(), loadData(), ret(), saveData(), and UCProcess().

uint16 UCProcess::classid [protected]

Definition at line 70 of file UCProcess.h.

Referenced by call(), dumpInfo(), UCMachine::execProcess(), load(), loadData(), ret(), saveData(), and UCProcess().

std::list<std::pair<uint16, int> > UCProcess::freeonterminate [protected]

Definition at line 79 of file UCProcess.h.

Referenced by freeOnTerminate(), loadData(), saveData(), and terminate().

uint16 UCProcess::ip [protected]

Definition at line 71 of file UCProcess.h.

Referenced by call(), dumpInfo(), UCMachine::execProcess(), load(), loadData(), ret(), saveData(), and UCProcess().

UCStack UCProcess::stack [protected]

Definition at line 76 of file UCProcess.h.

Referenced by UCMachine::assignPointer(), call(), UCMachine::dereferencePointer(), UCMachine::execProcess(), load(), loadData(), UCMachine::ptrToObject(), ret(), and saveData().

uint32 UCProcess::temp32 [protected]

Definition at line 73 of file UCProcess.h.

Referenced by UCMachine::execProcess(), loadData(), saveData(), setReturnValue(), and UCProcess().

Usecode* UCProcess::usecode [protected]

Definition at line 68 of file UCProcess.h.

Referenced by UCMachine::execProcess(), load(), and UCProcess().


The documentation for this class was generated from the following files:
Generated on Fri Jul 27 22:30:08 2007 for pentagram by  doxygen 1.4.7