Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= 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
|