#ifndef __DirServicesPriv_h__
#define __DirServicesPriv_h__ 1
#include "DirServicesTypes.h"
#include "PrivateTypes.h"
#include "CDSRefTable.h"
#include "CBuff.h"
#define kDSServiceName "DirectoryService" // this needs to change to "com.apple.DirectoryService" (coordinate with update to checkpw in Security)
#define kDSStdNotifyTypePrefix "com.apple.DirectoryService.NotifyTypeStandard:"
#define kDSStdNotifySearchPolicyChanged "com.apple.DirectoryService.NotifyTypeStandard:SearchPolicyChanged"
#define kDSStdNotifyDirectoryNodeAdded "com.apple.DirectoryService.NotifyTypeStandard:DirectoryNodeAdded"
#define kDSStdNotifyDirectoryNodeDeleted "com.apple.DirectoryService.NotifyTypeStandard:DirectoryNodeDeleted"
tDirStatus VerifyTDataBuff ( tDataBuffer *inBuff,
tDirStatus inNullErr,
tDirStatus inEmptyErr );
tDirStatus VerifyTNodeList ( tDataList *inDataList,
tDirStatus inNullErr,
tDirStatus inEmptyErr );
uInt32 CalcCRC ( const char *inStr );
tDirStatus IsStdBuffer ( tDataBufferPtr inOutDataBuff );
tDirStatus IsNodePathStrBuffer ( tDataBufferPtr inOutDataBuff );
tDirStatus IsFWReference ( uInt32 inRef );
tDirStatus IsRemoteReferenceMap( uInt32 inRef );
tDirStatus ExtractRecordEntry ( tDataBufferPtr inOutDataBuff,
unsigned long inRecordEntryIndex,
tAttributeListRef *outAttributeListRef,
tRecordEntryPtr *outRecEntryPtr );
tDirStatus ExtractAttributeEntry ( tDataBufferPtr inOutDataBuff,
tAttributeListRef inAttrListRef,
unsigned long inAttrInfoIndex,
tAttributeValueListRef *outAttrValueListRef,
tAttributeEntryPtr *outAttrInfoPtr );
tDirStatus ExtractAttributeValue ( tDataBufferPtr inOutDataBuff,
tAttributeValueListRef inAttrValueListRef,
unsigned long inAttrValueIndex,
tAttributeValueEntryPtr *outAttrValue );
tDirStatus ExtractDirNodeName ( tDataBufferPtr inOutDataBuff,
unsigned long inDirNodeIndex,
tDataListPtr *outDataList );
#endif