#ifndef __DSUtils_h__
#define __DSUtils_h__ 1
#include "DirServicesTypes.h"
#include "PrivateTypes.h"
#ifdef __cplusplus
extern "C" {
#endif
tDataBufferPtr dsDataBufferAllocatePriv ( unsigned long inBufferSize );
tDirStatus dsDataBufferDeallocatePriv ( tDataBufferPtr inDataBufferPtr );
tDataListPtr dsDataListAllocatePriv ( void );
tDirStatus dsDataListDeallocatePriv ( tDataListPtr inDataList );
char* dsGetPathFromListPriv ( tDataListPtr inDataList, const char *inDelimiter );
tDataListPtr dsBuildFromPathPriv ( const char *inPathCString, const char *inPathSeparatorCString );
tDataListPtr dsBuildListFromStringsPriv ( const char *in1stCString, ... );
tDirStatus dsAppendStringToListAllocPriv ( tDataList *inOutDataList, const char *inCString );
tDataNodePtr dsAllocListNodeFromStringPriv ( const char *inString );
tDataNodePtr dsGetThisNodePriv ( tDataNode *inFirsNode, const unsigned long inIndex );
tDataNodePtr dsGetLastNodePriv ( tDataNode *inFirsNode );
tDirStatus dsAppendStringToListPriv ( tDataList *inDataList, const char *inCString );
tDirStatus dsDeleteLastNodePriv ( tDataList *inDataList );
unsigned long dsDataListGetNodeCountPriv ( tDataList *inDataList );
unsigned long dsGetDataLengthPriv ( tDataList *inDataList );
tDirStatus dsDataListGetNodePriv ( tDataList *inDataList, unsigned long inNodeIndex, tDataNodePtr *outDataListNode );
char* dsDataListGetNodeStringPriv ( tDataListPtr inDataList, unsigned long inNodeIndex );
tDirStatus dsDataListGetNodeAllocPriv ( const tDataList *inDataList, const unsigned long inNodeIndex, tDataNode **outDataNode );
tDataListPtr dsAuthBufferGetDataListAllocPriv ( tDataBufferPtr inAuthBuff );
tDirStatus dsAuthBufferGetDataListPriv ( tDataBufferPtr inAuthBuff, tDataListPtr inOutDataList );
void BinaryToHexConversion ( const unsigned char *inBinary, unsigned long inLength, char *outHexStr );
void HexToBinaryConversion ( const char *inHexStr, unsigned long *outLength, unsigned char *outBinary );
double dsTimestamp (void);
#ifdef __cplusplus
}
#endif
#endif