#ifndef __CDataBuff_h__
#define __CDataBuff_h__ 1
#include <DirectoryServiceCore/PrivateTypes.h>
#include <stdarg.h> //for va_list
const UInt32 kDefaultSize = 512;
class CDataBuff {
public:
CDataBuff ( UInt32 inSize = 0 );
virtual ~CDataBuff ( void );
void AppendString ( const char *inStr );
void AppendLong ( UInt32 inInt );
void AppendShort ( UInt16 inShort );
void AppendBlock ( const void *inData, UInt32 inLength );
void Clear ( UInt32 inSize = 0 );
UInt32 GetSize ( void );
UInt32 GetLength ( void );
char* GetData ( void );
protected:
private:
void GrowBuff ( UInt32 inNewSize = 0 );
UInt32 fSize;
UInt32 fLength;
char *fData;
};
SInt32 dsCDataBuffFromAttrTypeAndStringValue( CDataBuff* inOutAttrDataBuff, CDataBuff* inOutDataBuff, bool inbAttrInfoOnly, const char* inAttrType, const char* inAttrValue );
SInt32 dsCDataBuffFromAttrTypeAndData( CDataBuff* inOutAttrDataBuff, CDataBuff* inOutDataBuff, bool inbAttrInfoOnly, const char* inAttrType, const char* inAttrValue, UInt32 inLength );
SInt32 dsCDataBuffFromAttrTypeAndStringValues( CDataBuff* inOutAttrDataBuff, CDataBuff* inOutDataBuff, bool inbAttrInfoOnly, const char* inAttrType, const char* inAttrValue, ... );
SInt32 dsCDataBuffFromAttrTypeAndStringArgValues( CDataBuff* inOutAttrDataBuff, CDataBuff* inOutDataBuff, bool inbAttrInfoOnly, const char* inAttrType, const char* inAttrValue, va_list inAttrValues );
SInt32 dsCDataBuffFromAttrTypeAndStringValues( CDataBuff* inOutAttrDataBuff, CDataBuff* inOutDataBuff, bool inbAttrInfoOnly, const char* inAttrType, const char** inAttrValues );
#endif