home *** CD-ROM | disk | FTP | other *** search
-
- /*
- ================================================================================
- ========================================================================
- ========================================================================
-
- 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
-