6#include "Templates/PointerIsConvertibleFromTo.h"
7#include "Misc/AssertionMacros.h"
8#include "Templates/UnrealTypeTraits.h"
9#include "Containers/UnrealString.h"
10#include "Templates/Function.h"
11#include "Containers/Map.h"
12#include "Templates/SharedPointer.h"
13#include "HAL/TlsAutoCleanup.h"
14#include "Misc/ScopeLock.h"
17
18
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65template<ESPMode Mode = ESPMode::ThreadSafe>
77
78
79
80
174
175
176
177
178
179
193
194
195
196
197
198
199
200
201
209
210
211
212
213
224
225
226
227
228
229
230
231
232 template<
class R,
class T,
typename... P>
274
275
276
277
278
279
280
281 template<
class R,
class D,
typename... P>
298
299
300
301
302
303
304
320
321
322
323
324
325
326
327
328 template<
class R,
typename P0,
typename... P>
342#if (defined(_MSC_VER
) && _MSC_VER
>= 1900
) || defined(__clang__
)
344
345
346
347
348
349
350
351
352
353 template<
class R,
typename... P>
369
370
371
372
373
374
375
376 template<
class R,
class T>
385
386
387
388
389
402
403
404
405
406
407 void AddProvider(
const TCHAR* Name,
const TSharedPtr<IInstanceProvider>& Provider)
FWindowsCriticalSection FCriticalSection
virtual TSharedPtr< void, Mode > GetInstance()=0
virtual ~IInstanceProvider()
void RegisterFactory(const TFunction< TSharedRef< R, Mode >()> &CreateFunc)
TSharedRef< R, Mode > GetInstanceRef() const
void RegisterDelegate(D Delegate)
TSharedRef< R, Mode > GetInstance() const
void AddProvider(const TCHAR *Name, const TSharedPtr< IInstanceProvider > &Provider)
TMap< FString, TSharedPtr< IInstanceProvider > > Providers
bool IsRegistered() const
void RegisterFactory(const TFunction< TSharedRef< R, Mode >(TSharedRef< P0, Mode >, TSharedRef< P, Mode >...)> &CreateFunc)
FCriticalSection CriticalSection
void RegisterInstance(const TSharedRef< T, Mode > &Instance)
virtual ~FThreadInstanceProvider() override
TFunction< TSharedPtr< void, Mode >()> CreateFunc
FThreadInstanceProvider(TFunction< TSharedPtr< void, Mode >()> &&InCreateFunc)
TFunction< TSharedPtr< void, Mode >()> CreateFunc
virtual TSharedPtr< void, Mode > GetInstance() override
TFunctionInstanceProvider(TFunction< TSharedPtr< void, Mode >()> &&InCreateFunc)
virtual ~TFunctionInstanceProvider() override
virtual TSharedPtr< void, Mode > GetInstance() override
TSharedRef< T, Mode > Instance
TSharedInstanceProvider(const TSharedRef< T, Mode > &InInstance)
virtual ~TSharedInstanceProvider()
virtual TSharedPtr< void, Mode > GetInstance() override
virtual ~TThreadInstanceProvider() override
TThreadInstanceProvider(TFunction< TSharedPtr< void, Mode >()> &&InCreateFunc)
TTlsAutoCleanupValue< TSharedPtr< T, Mode > > TlsValueType