blob: 85fc04dd7e936291637c9761ce81a834beed1060 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
//=======================================================================================//
#ifndef SHARED_REPLAYCONTEXT_H
#define SHARED_REPLAYCONTEXT_H
#ifdef _WIN32
#pragma once
#endif
//----------------------------------------------------------------------------------------
#include "baserecordingsessionmanager.h"
#include "baserecordingsessionblockmanager.h"
#include "errorsystem.h"
//----------------------------------------------------------------------------------------
class CBaseRecordingSessionManager;
class CBaseRecordingSessionBlockManager;
class CErrorSystem;
class IThreadPool;
//----------------------------------------------------------------------------------------
class CSharedReplayContext
{
public:
CSharedReplayContext( IReplayContext *pOwnerContext );
virtual ~CSharedReplayContext();
// Sets up public data members and such
virtual bool Init( CreateInterfaceFn fnFactory );
virtual void Shutdown();
virtual void Think();
virtual bool IsInitialized() const { return m_bInit; }
virtual const char *GetRelativeBaseDir() const;
virtual const char *GetBaseDir() const;
virtual const char *GetReplaySubDir() const;
IThreadPool *m_pThreadPool;
CBaseRecordingSessionManager *m_pRecordingSessionManager;
CBaseRecordingSessionBlockManager *m_pRecordingSessionBlockManager;
CErrorSystem *m_pErrorSystem;
CUtlString m_strRelativeBasePath; // eg: "/replay/server/"
CUtlString m_strBasePath; // eg: "/user/home/tfadmin/tf/replay/server/"
CUtlString m_strSubDir; // "client" or "server"
bool m_bInit; // Initialized yet? Set by outer class.
private:
bool InitThreadPool();
void EnsureDirHierarchy();
IReplayContext *m_pOwnerContext;
};
//----------------------------------------------------------------------------------------
#define LINK_TO_SHARED_REPLAYCONTEXT_IMP() \
CSharedReplayContext *m_pShared; \
virtual bool IsInitialized() const { return m_pShared && m_pShared->IsInitialized(); } \
virtual const char *GetRelativeBaseDir() const { return m_pShared->GetRelativeBaseDir(); } \
virtual const char *GetBaseDir() const { return m_pShared->GetBaseDir(); } \
virtual const char *GetReplaySubDir() const { return m_pShared->GetReplaySubDir(); } \
virtual IReplayErrorSystem *GetErrorSystem() { return m_pShared->m_pErrorSystem; } \
virtual IRecordingSessionManager *GetRecordingSessionManager() \
{ \
return m_pShared->m_pRecordingSessionManager; \
} \
virtual CBaseRecordingSession *GetRecordingSession( ReplayHandle_t hSession ) \
{ \
return static_cast< CBaseRecordingSession * >( m_pShared->m_pRecordingSessionManager->Find( hSession ) ); \
} \
virtual CBaseRecordingSessionBlockManager *GetRecordingSessionBlockManager() \
{ \
return m_pShared->m_pRecordingSessionBlockManager; \
}
//----------------------------------------------------------------------------------------
class CJob;
bool RunJobToCompletion( IThreadPool *pThreadPool, CJob *pJob );
//----------------------------------------------------------------------------------------
#endif // SHARED_REPLAYCONTEXT_H
|