mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-15 13:16:58 +00:00
1
This commit is contained in:
@@ -0,0 +1,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
|
||||
Reference in New Issue
Block a user