48 lines
1.1 KiB
C++
48 lines
1.1 KiB
C++
#pragma once
|
|
|
|
class ShutdownManager
|
|
{
|
|
public:
|
|
typedef enum
|
|
{
|
|
eMainThread,
|
|
|
|
eLeaderboardThread,
|
|
eCommerceThread,
|
|
ePostProcessThread,
|
|
eRunUpdateThread,
|
|
eRenderChunkUpdateThread,
|
|
eServerThread,
|
|
eStorageManagerThreads,
|
|
eConnectionReadThreads,
|
|
eConnectionWriteThreads,
|
|
eEventQueueThreads,
|
|
|
|
eThreadIdCount
|
|
} EThreadId;
|
|
|
|
static void Initialise() {}
|
|
static void StartShutdown() {}
|
|
static void MainThreadHandleShutdown() {}
|
|
#ifdef __PS3__
|
|
static void SysUtilCallback(uint64_t status, uint64_t param, void *userdata);
|
|
#endif
|
|
|
|
static void HasStarted(EThreadId threadId) {};
|
|
static void HasStarted(EThreadId threadId, C4JThread::EventArray *eventArray) {};
|
|
static bool ShouldRun(EThreadId threadId) {return true;};
|
|
static void HasFinished(EThreadId threadId) {};
|
|
|
|
private:
|
|
#ifdef __PS3__
|
|
static bool s_threadShouldRun[eThreadIdCount];
|
|
static int s_threadRunning[eThreadIdCount];
|
|
static CRITICAL_SECTION s_threadRunningCS;
|
|
static C4JThread::EventArray *s_eventArray[eThreadIdCount];
|
|
|
|
static void RequestThreadToStop(int i);
|
|
static void WaitForSignalledToComplete();
|
|
static void StorageManagerCompleteFn();
|
|
#endif
|
|
};
|