Mercurial > projects > dstep
diff dstep/security/mds.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/security/mds.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,93 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 22, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.security.mds; + +import dstep.security.cssmtype; + +alias int MDS_HANDLE; +alias CSSM_DL_DB_HANDLE MDS_DB_HANDLE; +alias MDS_FUNCS* MDS_FUNCS_PTR; + +struct MDS_FUNCS +{ + extern (C) int function (MDS_HANDLE MdsHandle, + /*const*/ char *DbName, + /*const*/ CSSM_NET_ADDRESS *DbLocation, + CSSM_DB_ACCESS_TYPE AccessRequest, + /*const*/ CSSM_ACCESS_CREDENTIALS *AccessCred, + /*const*/ void *OpenParameters, + CSSM_DB_HANDLE *hMds) DbOpen; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle) DbClose; + + extern (C) int function (MDS_HANDLE MdsHandle, + CSSM_NAME_LIST_PTR *NameList) GetDbNames; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, char **DbName) GetDbNameFromHandle; + + extern (C) int function (MDS_HANDLE MdsHandle, + CSSM_NAME_LIST_PTR NameList) FreeNameList; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + CSSM_DB_RECORDTYPE RecordType, + /*const*/ CSSM_DB_RECORD_ATTRIBUTE_DATA *Attributes, + /*const*/ CSSM_DATA *Data, + CSSM_DB_UNIQUE_RECORD_PTR *UniqueId) DataInsert; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + /*const*/ CSSM_DB_UNIQUE_RECORD *UniqueRecordIdentifier) DataDelete; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + CSSM_DB_RECORDTYPE RecordType, + CSSM_DB_UNIQUE_RECORD_PTR UniqueRecordIdentifier, + /*const*/ CSSM_DB_RECORD_ATTRIBUTE_DATA *AttributesToBeModified, + /*const*/ CSSM_DATA *DataToBeModified, + CSSM_DB_MODIFY_MODE ModifyMode) DataModify; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + /*const*/ CSSM_QUERY *Query, + CSSM_HANDLE_PTR ResultsHandle, + CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, + CSSM_DATA_PTR Data, + CSSM_DB_UNIQUE_RECORD_PTR *UniqueId) DataGetFirst; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + CSSM_HANDLE ResultsHandle, + CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, + CSSM_DATA_PTR Data, + CSSM_DB_UNIQUE_RECORD_PTR *UniqueId) DataGetNext; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + CSSM_HANDLE ResultsHandle) DataAbortQuery; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + /*const*/ CSSM_DB_UNIQUE_RECORD *UniqueRecord, + CSSM_DB_RECORD_ATTRIBUTE_DATA_PTR Attributes, + CSSM_DATA_PTR Data) DataGetFromUniqueRecordId; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + CSSM_DB_UNIQUE_RECORD_PTR UniqueRecord) FreeUniqueRecord; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + CSSM_DB_RECORDTYPE RelationID, + /*const*/ char *RelationName, + uint NumberOfAttributes, + /*const*/ CSSM_DB_SCHEMA_ATTRIBUTE_INFO *pAttributeInfo, + uint NumberOfIndexes, + /*const*/ CSSM_DB_SCHEMA_INDEX_INFO *pIndexInfo) CreateRelation; + + extern (C) int function (MDS_DB_HANDLE MdsDbHandle, + CSSM_DB_RECORDTYPE RelationID) DestroyRelation; +} + +extern (C) +{ + int MDS_Initialize (CSSM_GUID* pCallerGuid, CSSM_MEMORY_FUNCS* pMemoryFunctions, MDS_FUNCS_PTR pDlFunctions, MDS_HANDLE* hMds); + int MDS_Terminate (int MdsHandle); + int MDS_Install (int MdsHandle); + int MDS_Uninstall (int MdsHandle); +} \ No newline at end of file