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.
64 lines
2.0 KiB
64 lines
2.0 KiB
//========= Copyright Valve Corporation, All rights reserved. ============//
|
|
//
|
|
//=======================================================================================//
|
|
|
|
#ifndef SV_PUBLISHMANAGER_H
|
|
#define SV_PUBLISHMANAGER_H
|
|
#ifdef _WIN32
|
|
#pragma once
|
|
#endif
|
|
|
|
//----------------------------------------------------------------------------------------
|
|
|
|
#include "baserecordingsessionmanager.h"
|
|
|
|
//----------------------------------------------------------------------------------------
|
|
|
|
class CServerRecordingSession;
|
|
|
|
//----------------------------------------------------------------------------------------
|
|
|
|
//
|
|
// Manages and serializes all replay recording session data on the server
|
|
//
|
|
class CServerRecordingSessionManager : public CBaseRecordingSessionManager
|
|
{
|
|
typedef CBaseRecordingSessionManager BaseClass;
|
|
|
|
public:
|
|
CServerRecordingSessionManager( IReplayContext *pContext );
|
|
~CServerRecordingSessionManager();
|
|
|
|
void Think();
|
|
|
|
const char *GetNewSessionName() const;
|
|
|
|
virtual CBaseRecordingSession *OnSessionStart( int nCurrentRecordingStartTick, const char *pSessionName );
|
|
virtual void OnSessionEnd();
|
|
|
|
void EnableCleanupOnSessionEnd( bool bState );
|
|
|
|
// Offload session data to external fileserver? Cached once per session based on replay_fileserver_offload_enable.
|
|
bool ShouldOffload() const { return m_bOffload; }
|
|
|
|
protected:
|
|
//
|
|
// CGenericPersistentManager
|
|
//
|
|
virtual CBaseRecordingSession *Create();
|
|
virtual int GetVersion() const;
|
|
virtual bool ShouldSerializeIndexWithFullPath() { return false; } // On the server, write one file per session
|
|
virtual IReplayContext *GetReplayContext() const;
|
|
|
|
virtual bool CanDeleteSession( ReplayHandle_t hSession ) const;
|
|
virtual bool ShouldUnloadSessions() const { return true; }
|
|
virtual void OnAllSessionsDeleted();
|
|
|
|
private:
|
|
float m_flNextScheduledCleanup;
|
|
bool m_bOffload;
|
|
};
|
|
|
|
//----------------------------------------------------------------------------------------
|
|
|
|
#endif // SV_PUBLISHMANAGER_H
|