Source code of Windows XP (NT5)
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.
|
|
/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
buffer.hxx
Abstract:
This contains all buffer class definition. No reallocing of buffers is done. A buffer must be big enough to hold both buffer for a cat.
Author:
Steve Rowe 27-Nov-90
Environment:
ULIB, User Mode
Notes:
Revision History:
--*/
//
// This class is no longer supported.
//
#define _BUFFER_
#if !defined (_BUFFER_)
#define _BUFFER_
#include "error.hxx"
DECLARE_CLASS( BUFFER );
class BUFFER : public OBJECT {
friend WSTRING;
public:
VIRTUAL ~BUFFER ( );
NONVIRTUAL BOOLEAN BuffCat ( IN PCBUFFER BufferToCat );
NONVIRTUAL PCVOID GetBufferPtr ( ) CONST;
NONVIRTUAL BOOLEAN PutBuffer ( IN PCBUFFER BufferToCopy );
NONVIRTUAL ULONG QueryBytesInBuffer ( ) CONST;
NONVIRTUAL BOOLEAN SetBuffer ( IN PVOID InitialBuffer, IN ULONG SizeOfBuffer );
protected:
DECLARE_CONSTRUCTOR( BUFFER );
NONVIRTUAL BOOLEAN BufferCopyAt ( IN PCVOID BufferToCopy, IN ULONG BytesToCopy, IN ULONG StartingByte DEFAULT 0 );
NONVIRTUAL BOOLEAN DeleteAt ( IN ULONG cbToDelete, IN ULONG oStartDelete );
NONVIRTUAL BOOLEAN InsertAt ( IN PCVOID BufferToCopy, IN ULONG cbToCopy, IN ULONG oStartCopy );
NONVIRTUAL PVOID ReAllocate ( IN ULONG NewCount );
private:
NONVIRTUAL VOID Construct ( );
PVOID pBuffer; // pointer to the data byffer
ULONG cb; // count of bytes used
ULONG _BufSize; // count of bytes in buffer
STATIC ULONG _ThresHold; };
INLINE PCVOID BUFFER::GetBufferPtr ( ) CONST
/*++
Routine Description:
Fetch pointer to internal buffer
Arguments:
None
Return Value:
PCVOID - pointer to internal buffer
--*/
{ return ( pBuffer ); }
INLINE ULONG BUFFER::QueryBytesInBuffer ( ) CONST
/*++
Routine Description:
Fetch size in bytes of internal buffer
Arguments:
None
Return Value:
ULONG - size of internal buffer in bytes
--*/
{ return ( cb ); }
#endif // _BUFFER_
|