#ifndef DIRSERVICESUTILS_H
#define	 DIRSERVICESUTILS_H



#include <stdarg.h>

#include <AvailabilityMacros.h>
#include <DirectoryService/DirServicesTypes.h>

#ifdef __cplusplus
extern "C" {
#endif
/*dsDataBufferAllocate

tDataBufferPtr dsDataBufferAllocate (
    tDirReference inDirReference, 
    unsigned long inBufferSize );  */
tDataBufferPtr dsDataBufferAllocate (
    tDirReference inDirReference, 
    unsigned long inBufferSize ); 

/*dsDataBufferDeAllocate

tDirStatus dsDataBufferDeAllocate (
    tDirReference inDirReference, 
    tDataBufferPtr inDataBufferPtr );  */

tDirStatus dsDataBufferDeAllocate (
    tDirReference inDirReference, 
    tDataBufferPtr inDataBufferPtr );

/*dsDataListDeAllocate

tDirStatus dsDataListDeAllocate (
    tDirReference inDirReference, 
    tDataListPtr inDataList, 
    dsBool inDeAllocateNodesFlag );  
Discussion 

Please Note: ******** API Change Soon ******** dsDataListDeAllocate() will be soon be obsoleted and no longer supported. Please discontinue using it and instead use --> dsDataListDeallocate() ( <-lower case 'a' ).*/

tDirStatus dsDataListDeAllocate (
    tDirReference inDirReference, 
    tDataListPtr inDataList, 
    dsBool inDeAllocateNodesFlag );  

/*dsDataListDeallocate

tDirStatus dsDataListDeallocate (
    tDirReference inDirReference, 
    tDataListPtr inDataList );  
Discussion 

Note that if the tDataListPtr is a heap based tDataList rather than stack based, that you must also call free() to release the memory for the head of the list after calling dsDataListDeallocate().*/
tDirStatus dsDataListDeallocate (
    tDirReference inDirReference, 
    tDataListPtr inDataList );  

#ifdef __cplusplus
}
#endif

#endif
