//---------------------------------------------------------------------------- // // Copyright (C) 2003 Intel Corporation // // File: flexbuf.h // // Contents: A class which manages a string-like entity with advanced // features such as file I/O. // //---------------------------------------------------------------------------- #ifndef _FLEX_BUF #define _FLEX_BUF #include using namespace std; class flexbuf : protected strstreambuf { public: bool m_error; /* * Constructor - creates a flexbuf instance * Arguments: * none */ flexbuf(); /* * Constructor - creates a flexbuf instance * Arguments: * n - Initial size of buffer */ flexbuf(int n); /* * Adds array of characters of size n to the end of the buffer * Arguments: * b - pointer to character array * n - number of characters to insert * Return Value: * none */ void addbuf(const unsigned char *b, int n); /* * Adds array of characters of size n to the end of the buffer * Arguments: * b - pointer to character array * n - number of characters to insert * Return Value: * none */ void addbuf(const char *b, int n); /* * Adds null terminating string to end of buffer * Arguments: * b - pointer to null terminating string * Return Value: * none */ void addbuf(const char *b); /* * Returns the current size of the buffer * Arguments: * none * Return Value: * size of the buffer (in bytes) */ int size() const; /* * Returns a regular pointer to the buffer's data * Arguments: * none * Return Value: * pointer to buffer's data */ char * buffer(); /* * Concatenates a buffer to this buffer * Arguments: * f - buffer to concatenate to this buffer * Return Value: * none */ void operator<< (flexbuf &f); /* * Adds a single character to the end of the buffer * Arguments: * c - character to add * Return Value: * none */ void operator<< (const unsigned char c); /* * Adds a short integer to the end of the buffer * Arguments: * s - short value to add * Return Value: * none */ void operator<< (const unsigned short s); /* * Adds a long integer to the end of the buffer * Arguments: * l - long value to add * Return Value: * none */ void operator<< (const unsigned long l); /* * Adds an integer to the end of the buffer * Arguments: * i - int value to add * Return Value: * none */ void operator<< (const unsigned int i); /* * Prints the contents of the buffer for debug purposes * Arguments: * none * Return Value: * none */ void trace(); /* * Adds the contents of a file to the buffer * Arguments: * filename - name of the input file * Return Value: * 0 - on success * -1/err - on failure */ int file_in(char *filename); /* * Writes the contents of the buffer to a file * Arguments: * filename - name of the output file * Return Value: * 0 - on success * -1 - on failure */ int file_out(char *filename); }; #endif