mirror of https://github.com/lianthony/NT4.0
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
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__
|