Cavestory Mod API
|
Easy multi-threading for modes. More...
#include <CSMAPI_BaseModeInstance.h>
Public Types | |
enum | ThreadState { THREAD_NOT_RUNNING = 0 , THREAD_STARTING = 1 , THREAD_RUNNING = 2 , THREAD_STOPPING = 3 , THREAD_DELETABLE = 4 } |
Thread states. More... | |
typedef void(* | ModeCallback_OnThreadComplete) (BaseModeInstance *pMode, ModeThreadInstance *pThread, void *pUserData) |
Callback function for when a thread completes. | |
typedef void(* | ModeCallback_OnThreadLoop) (BaseModeInstance *pMode, ModeThreadInstance *pThread, void *pUserData) |
Callback function for when a thread completes. | |
Public Member Functions | |
ModeThreadInstance () | |
Main constructor. | |
~ModeThreadInstance () | |
Deconstructor. | |
bool | TryLockUnique () |
Try to lock a critical part of code. More... | |
void | LockUnique () |
Lock a critical part of code. | |
void | UnlockUnique () |
Unlock a critical part of code. | |
bool | Start () |
Start the thread. | |
void | End (int iResult=0) |
End the thread. | |
void | WaitToFinish () |
Wait for the thread to finish. | |
void | Detach () |
Detach this thread. | |
int | GetResult () |
Get the return result. | |
Static Public Member Functions | |
static bool | TryLock () |
Try to lock a critical part of code. More... | |
static void | Lock () |
Lock a critical part of code. | |
static void | Unlock () |
Unlock a critical part of code. | |
Protected Member Functions | |
bool | InitThread (BaseModeInstance *pOwner, ModeCallback_OnThreadLoop pOnLoopFunc, ModeCallback_OnThreadComplete pOnCompleteFunc, void *pUserData=NULL) |
Initialize this thread instance. More... | |
void | __Complete_And_Send_Result__ () |
Complete this mode. More... | |
Protected Attributes | |
char | m_ThreadName [128] |
The thread name. | |
ModeThreadId | m_ThreadId |
This thread's local ID. | |
ModeCallback_OnThreadComplete | m_OnComplete |
Called when the asynchronous operation ends, by any means. | |
ModeCallback_OnThreadComplete | m_OnLoop |
Called every frame. | |
BaseModeInstance * | m_Owner |
The owner of this thread. | |
void * | m_Thread |
The thread for this mode. | |
void * | m_Mutex |
This thread's unique mutex. | |
ThreadState | m_State |
The state of this thread. | |
bool | m_Running |
This is controlled by the async function. | |
int | m_Result |
The result from the async operation. | |
void * | m_UserData |
Function callback userdata. | |
Friends | |
class | BaseModeInstance |
int | ModeThreadInstance_AsyncFunc (void *ptr) |
Easy multi-threading for modes.
|
protected |
Complete this mode.
Do not call this.
|
protected |
Initialize this thread instance.
pOwner | The owner of this thread. |
pOnLoopFunc | The 'OnLoop' callback function. |
pOnCompleteFunc | The 'OnComplete' callback function. |
pUserData | The user data for the callback functions. |
|
static |
Try to lock a critical part of code.
bool ModeThreadInstance::TryLockUnique | ( | ) |
Try to lock a critical part of code.