mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-08-01 02:15:54 -04:00
58 lines
1.7 KiB
C++
58 lines
1.7 KiB
C++
// ======================================================================
|
|
//
|
|
// PerThreadData.h
|
|
//
|
|
// Portions copyright 1998 Bootprint Entertainment
|
|
// Portions Copyright 2002 Sony Online Entertainment
|
|
// All Rights Reserved
|
|
//
|
|
// ======================================================================
|
|
|
|
#ifndef INCLUDED_PerThreadData_H
|
|
#define INCLUDED_PerThreadData_H
|
|
|
|
// ======================================================================
|
|
|
|
class Gate;
|
|
|
|
#include "sharedFoundation/ExitChain.h"
|
|
|
|
// ======================================================================
|
|
|
|
// Provide thread local storage functionality.
|
|
//
|
|
// This class' purpose is to allow each thread to maintain some storage that is local and private to each thread.
|
|
// The system must be installed before use. Each thread that may use per-thread-data will also need to call the
|
|
// threadInstall() routine after creation and threadRemove() just before termination of the thread.
|
|
|
|
class PerThreadData
|
|
{
|
|
public:
|
|
|
|
static void install(void);
|
|
static void remove(void);
|
|
|
|
static void threadInstall(bool isNewThread = true);
|
|
static void threadRemove(void);
|
|
|
|
static bool isThreadInstalled(void);
|
|
|
|
static bool getExitChainRunning(void);
|
|
static void setExitChainRunning(bool newValue);
|
|
|
|
static bool getExitChainFataling(void);
|
|
static void setExitChainFataling(bool newValue);
|
|
|
|
static ExitChain::Entry *getExitChainFirstEntry(void);
|
|
static void setExitChainFirstEntry(ExitChain::Entry *newValue);
|
|
|
|
static int getDebugPrintFlags(void);
|
|
static void setDebugPrintFlags(int newValue);
|
|
|
|
static Gate *getFileStreamerReadGate(void);
|
|
};
|
|
|
|
// ======================================================================
|
|
|
|
#endif
|