mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-09-01 15:09:19 +00:00
1
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
//=======================================================================================//
|
||||
|
||||
#ifndef SV_SESSIONINFOPUBLISHER_H
|
||||
#define SV_SESSIONINFOPUBLISHER_H
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
||||
#include "utlbuffer.h"
|
||||
#include "sv_filepublish.h"
|
||||
#include "replay/replaytime.h"
|
||||
#include "sessioninfoheader.h"
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
||||
class CServerRecordingSession;
|
||||
class IFilePublisher;
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
||||
class CSessionInfoPublisher : public IPublishCallbackHandler
|
||||
{
|
||||
public:
|
||||
CSessionInfoPublisher( CServerRecordingSession *pSession );
|
||||
~CSessionInfoPublisher();
|
||||
|
||||
void Publish();
|
||||
void PublishAllSynchronous();
|
||||
|
||||
bool IsPublishingSessionInfo() const { return m_flSessionInfoPublishTime != 0.0f || m_pFilePublisher; }
|
||||
bool IsDone() const;
|
||||
|
||||
void OnStopRecord( bool bAborting );
|
||||
void AbortPublish();
|
||||
void Think(); // Called explicitly
|
||||
|
||||
private:
|
||||
//
|
||||
// IPublishCallback
|
||||
//
|
||||
virtual void OnPublishComplete( const IFilePublisher *pPublisher, void *pUserData );
|
||||
virtual void OnPublishAborted( const IFilePublisher *pPublisher );
|
||||
virtual void AdjustHeader( const IFilePublisher *pPublisher, void *pHeaderData );
|
||||
|
||||
void RefreshSessionInfoBlockData( CUtlBuffer &buf );
|
||||
|
||||
IFilePublisher *m_pFilePublisher;
|
||||
float m_flSessionInfoPublishTime;
|
||||
|
||||
SessionInfoHeader_t m_SessionInfoHeader;
|
||||
int m_itLastCompletedBlockWrittenToBuffer; // The last block written to the buffer that isn't going to change state
|
||||
CUtlBuffer m_bufSessionInfo; // Growable buffer for the session info block data (does not include header)
|
||||
|
||||
CServerRecordingSession *m_pSession;
|
||||
|
||||
bool m_bShouldPublish; // True if we should publish - can be true while already publishing. Means another publish is needed.
|
||||
};
|
||||
|
||||
//----------------------------------------------------------------------------------------
|
||||
|
||||
#endif // SV_SESSIONINFOPUBLISHER_H
|
||||
Reference in New Issue
Block a user