Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

71 lines
1.6 KiB

/**********************************************************************/
/** Microsoft LAN Manager **/
/** Copyright(c) Microsoft Corp., 1987-1990 **/
/**********************************************************************/
/*
buffer.hxx
MIDL Compiler Buffer Manager Definition
This class manages two-way infinite buffer of string pointers.
*/
/*
FILE HISTORY :
DonnaLi 09-11-1990 Created.
*/
#ifndef __BUFFER_HXX__
#define __BUFFER_HXX__
typedef struct _BufferElement
{
struct _BufferElement * pPrev;
struct _BufferElement * pNext;
char ** pBuffer;
_BufferElement(
struct _BufferElement * pPrevElem,
struct _BufferElement * pNextElem,
char ** pNewBuf);
struct _BufferElement * ExtendPrev(char **);
struct _BufferElement * ExtendNext(char **);
struct _BufferElement * GetPrev(void);
struct _BufferElement * GetNext(void);
} BufferElement;
class BufferManager
{
char ** pszTable;
unsigned short usTabSize;
unsigned short usBufSize;
BufferElement * pSave;
BufferElement * pHead;
BufferElement * pTail;
unsigned short iHead;
unsigned short iTail;
public:
BufferManager(unsigned short);
BufferManager(unsigned short, unsigned short, char * []);
void Clear(void);
short Empty(void);
void Print(FILE *);
void Print(char *);
void Clone(BufferManager *);
void Merge(BufferManager *);
void ConcatHead(char *);
void ConcatHead(unsigned short);
void ConcatTail(char *);
void ConcatTail(unsigned short);
void RemoveHead(char **);
void RemoveTail(char **);
} ;
#endif // __BUFFER_HXX__