Files
firestorm/build-env/VisualStudio6/VC98/Include/DATA.H
T
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

152 lines
4.5 KiB
C++

/*
================================================================================
========================================================================
========================================================================
File: cdata.h
Description: headers for CData and child classes
Created: 9/3/1997
Author: Matthijs Gates
Mail: mgates@microsoft.com
Copyright (C) 1997 Microsoft Corporation. All Rights Reserved.
========================================================================
========================================================================
================================================================================
*/
#if !defined(DATA_H)
#define DATA_H
#include "brtest.h"
#include "util.h"
//==============================================================================
//
// Class: CData
//
//------------------------------------------------------------------------------
// Description: root class for data.
//
// Public methods:
//
// Public properties:
//
// 9/3/1997
// mgates
//
//==============================================================================
class CData
{
CRITICAL_SECTION m_crtCDataLock ; // critical section lock
INT m_iBufferSize ; // buffer sizes are always in bytes !
VOID InitCData() ;
// P U B L I C
public :
CData() ;
virtual ~CData() ;
virtual BYTE *GetBuffer() { return m_lpbBuffer ; }
virtual INT GetBufferSize() { return m_iBufferSize ; }
// P R O T E C T E D
protected :
virtual BOOL CDataSetBuffer(BYTE *lpbBuffer, INT iBufferSize) ;
VOID Lock() { EnterCriticalSection(&m_crtCDataLock) ; }
VOID Unlock() { LeaveCriticalSection(&m_crtCDataLock) ; }
BYTE *m_lpbBuffer ;
} ;
//==============================================================================
//
// Class: CDataCountup
//
//------------------------------------------------------------------------------
// Description:
//
// Public methods:
//
// Public properties:
//
// 9/12/1997
// mgates
//
//==============================================================================
class CDataCountup : public CData
{
BOOL m_fFirst ;
INT m_cDword ;
BOOL m_fFreeze ;
// P U B L I C -------------------------------------------------------------
public :
CDataCountup(INT iBufferSize = DEF_DATABUFFERSIZE) ;
~CDataCountup() ;
virtual BYTE *GetBuffer() ;
BOOL SetBufferSize(INT iBufferSize) ;
VOID Reset(INT iBaseNumber = 0) ;
BOOL FreezeCountup(BOOL fFreeze) { m_fFreeze = fFreeze ; return TRUE ; }
BOOL IsCountupFrozen() { return m_fFreeze ; }
enum { DEF_DATABUFFERSIZE = 1024,
MIN_BUFFERSIZE = 100,
MAX_BUFFERSIZE = 65504 // max UDP is 65507, aligned on
// DWORD boundary is 65504
} ;
} ;
//==============================================================================
//
// Class: CDataString
//
//------------------------------------------------------------------------------
// Description: CData derivative to hold a regular null-terminated
// string.
//
// Public methods:
// Set() sets the content
// GetBuffer() retrieves the null-terminated string
// GetBufferSize() returns the length of the string,
// excluding the null-terminator
//
// Public properties:
// - none -
//
// 9/4/1997
// mgates
//
//==============================================================================
class CDataString : public CData
{
CString m_strBuffer ;
// P U B L I C
public :
CDataString() { ; }
CDataString(CString &strBuffer) : m_strBuffer(strBuffer) { ; }
CDataString(const char *szBuffer) : m_strBuffer(szBuffer) { ; }
~CDataString() ;
BOOL Set(CString &strBuffer) ;
BOOL Set(const char *szBuffer) ;
BYTE *GetBuffer() { return (BYTE *) m_strBuffer.GetBuffer(0) ; }
INT GetBufferSize() { return m_strBuffer.GetLength() ; }
} ;
#endif // DATA_H