Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032
00033 #pragma once
00034
00035
00036 #include "../api_core.h"
00037 #include "sharedptr.h"
00038
00039 class CL_ThreadLocalStorageData
00040 {
00041 public:
00042 virtual ~CL_ThreadLocalStorageData() { }
00043 };
00044
00045 class CL_ThreadLocalStorage_Impl;
00046
00050 class CL_API_CORE CL_ThreadLocalStorage
00051 {
00054
00055 public:
00057 CL_ThreadLocalStorage();
00058
00059 ~CL_ThreadLocalStorage();
00060
00061 private:
00063 static void create_initial_instance();
00064
00068
00069 public:
00071 static CL_SharedPtr<CL_ThreadLocalStorageData> get_variable(const CL_StringRef &name);
00072
00073
00077
00078 public:
00080 static void set_variable(const CL_StringRef &name, CL_SharedPtr<CL_ThreadLocalStorageData> ptr);
00081
00082
00086
00087 private:
00089 friend class CL_SetupCore;
00090 };
00091
00092