Leaked source code of windows server 2003
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.
|
|
/* TMemory2.h
* * Copyright (c) 1994-1995 by DataBeam Corporation, Lexington, KY * * Abstract: * This is a memory class used to manage a memory buffer. During * instantiation, a buffer is allocated and a prepend value is passed in. * The prepend value is used during the Append() call. All Append() calls * are appended after the prepend value. A running length is also * maintained. This class is good to use if you are going to build up a * packet over time. * * If a packet overruns the max. buffer size, a new buffer is allocated and * used. * * Caveats: * None. * * Authors: * James W. Lawwill */
#ifndef _TMEMORY2_
#define _TMEMORY2_
#define MAXIMUM_NUMBER_REALLOC_FAILURES 10
typedef enum { TMEMORY_NO_ERROR, TMEMORY_NONFATAL_ERROR, TMEMORY_FATAL_ERROR, TMEMORY_NO_DATA } TMemoryError, * PTMemoryError;
class TMemory { public: TMemory ( ULong total_length, UShort prepend_space, PTMemoryError error); ~TMemory ( Void);
TMemoryError Append ( HPUChar address, ULong length); TMemoryError GetMemory ( HPUChar * address, FPULong length); Void Reset ( Void);
private: ULong Default_Buffer_Size; HPUChar Base_Buffer; HPUChar Auxiliary_Buffer; ULong Length; DBBoolean Auxiliary_Buffer_In_Use; UShort Prepend_Space; UShort Fatal_Error_Count; }; typedef TMemory * PTMemory;
#endif
/*
* Documentation for Public class members */
/*
* TMemory::TMemory ( * ULong total_length, * UShort prepend_space, * PTMemoryError error); * * Functional Description: * This is the constructor for the TMemory class. * * Formal Parameters: * total_length (i) - Length of the default buffer * prepend_space (i) - Space to leave blank in the buffer * error (o) - Returns an error value * * Return Value: * None. * * Side Effects: * None. * * Caveats: * None. */
/*
* TMemory::TMemory ( * Void) * * Functional Description: * This is the destructor for the object. * * Formal Parameters: * None. * * Return Value: * None. * * Side Effects: * None. * * Caveats: * None. */
/*
* TMemoryError TMemory::Append ( * HPUChar address, * ULong length); * * Functional Description: * This function appends the buffer passed in to the internal buffer. * * Formal Parameters: * address (i) - Address of buffer * length (i) - Length of buffer * * Return Value: * TMEMORY_NO_ERROR - No error * TMEMORY_FATAL_ERROR - Fatal error occured, can't alloc a buffer * TMEMORY_NONFATAL_ERROR - Buffer was not copied but it was not a * fatal error * * Side Effects: * None. * * Caveats: * None. */
/*
* TMemoryError TMemory::GetMemory ( * HPUChar * address, * FPULong length); * * Functional Description: * This function returns the address and used length of our internal buffer * * Formal Parameters: * address (o) - Address of our internal buffer * length (i) - Length of buffer * * Return Value: * TMEMORY_NO_ERROR - No error * * Side Effects: * None. * * Caveats: * None. */
/*
* Void TMemory::Reset ( * Void) * * Functional Description: * This function resets the memory object. All data in the object is lost * * Formal Parameters: * None * * Return Value: * None * * Side Effects: * None. * * Caveats: * None. */
|