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
|
|
|