BaseDirectoryPluginTypes.h [plain text]
#ifndef _BASEDIRECTORYPLUGINTYPES_H
#define _BASEDIRECTORYPLUGINTYPES_H
#include <DirectoryService/DirServicesTypes.h>
#include <DirectoryService/DirServicesConst.h>
#include <DirectoryServiceCore/SharedConsts.h>
#include <DirectoryServiceCore/PluginData.h>
#include <CoreFoundation/CoreFoundation.h>
#define kBDPINameKey CFSTR("Name")
#define kBDPIDistinguishedKey CFSTR("Distinguished")
#define kBDPIAttributeKey CFSTR("Attributes")
#define kBDPITypeKey CFSTR("Type")
#define kBDPIGUID CFSTR("GUID")
#ifdef __OBJC__
#define kNSBDPINameKey (NSString*)kBDPINameKey
#define kNSBDPIDistinguishedKey (NSString*)kBDPIDistinguishedKey
#define kNSBDPIAttributeKey (NSString*)kBDPIAttributeKey
#define kNSBDPITypeKey (NSString*)kBDPITypeKey
#define kNSBDPIGUID (NSString*)kBDPIGUID
#endif
#ifndef __OBJC__
class BDPIVirtualNode;
#else
@class BDPIVirtualNode;
#endif
const int kBPDIBufferTax = 16;
enum CntxDataType
{
kBDPIUndefined = 0,
kBDPIDirNode = 1,
kBDPIAuthentication = 2,
kBDPISearchRecords = 3,
kBDPIRecordEntry = 4,
kBDPIAttributeEntry = 5
};
typedef void *BDPIOpaqueBuffer;
typedef void (*SearchCtxStateFree)(void *);
struct sBDPINodeContext
{
enum CntxDataType fType;
BDPIVirtualNode *fVirtualNode;
uid_t fUID;
uid_t fEffectiveUID;
};
struct sBDPISearchRecordsContext
{
enum CntxDataType fType;
CFArrayRef fRecordTypeList;
CFStringRef fAttributeType;
tDirPatternMatch fPattMatchType;
CFArrayRef fValueList;
CFArrayRef fReturnAttribList;
bool fAttribsOnly;
UInt32 fIndex;
UInt32 fMaxRecCount;
CFIndex fRecTypeIndex;
void *fStateInfo;
SearchCtxStateFree fStateInfoCallback;
};
struct sBDPIRecordEntryContext
{
enum CntxDataType fType;
BDPIVirtualNode *fVirtualNode;
CFMutableDictionaryRef fRecord;
};
struct sBDPIAttributeEntryContext
{
enum CntxDataType fType;
BDPIVirtualNode *fVirtualNode;
CFMutableDictionaryRef fRecord;
CFStringRef fAttributeName;
CFMutableArrayRef fAttributeValueList;
};
struct sBDPIAuthContext
{
enum CntxDataType fType;
BDPIVirtualNode *fVirtualNode;
void *fStateInfo;
};
#endif