Mercurial > projects > dstep
diff dstep/coreservices/carboncore/Collections.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/coreservices/carboncore/Collections.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,209 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 21, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.coreservices.carboncore.Collections; + +//import dstep.AvailabilityMacros; +import dstep.coreservices.carboncore.MacTypes; +import dstep.coreservices.carboncore.MixedMode; +import dstep.internal.Types; +import dstep.internal.Version; + +struct OpaqueCollection; +alias OpaqueCollection* Collection; +alias uint CollectionTag; +alias CollectionFlattenProcPtr CollectionFlattenUPP; +alias CollectionExceptionProcPtr CollectionExceptionUPP; + +extern (C) +{ + alias short function (Collection, short) CollectionExceptionProcPtr; + alias short function (int, void*, void*) CollectionFlattenProcPtr; +} + +enum +{ + kCollectionDontWantTag = 0L, + kCollectionDontWantId = 0L, + kCollectionDontWantSize = 0L, + kCollectionDontWantAttributes = 0L, + kCollectionDontWantIndex = 0L, + kCollectionDontWantData = 0L +} + +enum +{ + kCollectionNoAttributes = 0x00000000, + kCollectionAllAttributes = cast(c_long)0xFFFFFFFF, + kCollectionUserAttributes = 0x0000FFFF, + kCollectionDefaultAttributes = 0x40000000 +} + +enum +{ + kCollectionUser0Bit = 0, + kCollectionUser1Bit = 1, + kCollectionUser2Bit = 2, + kCollectionUser3Bit = 3, + kCollectionUser4Bit = 4, + kCollectionUser5Bit = 5, + kCollectionUser6Bit = 6, + kCollectionUser7Bit = 7, + kCollectionUser8Bit = 8, + kCollectionUser9Bit = 9, + kCollectionUser10Bit = 10, + kCollectionUser11Bit = 11, + kCollectionUser12Bit = 12, + kCollectionUser13Bit = 13, + kCollectionUser14Bit = 14, + kCollectionUser15Bit = 15, + kCollectionReserved0Bit = 16, + kCollectionReserved1Bit = 17, + kCollectionReserved2Bit = 18, + kCollectionReserved3Bit = 19, + kCollectionReserved4Bit = 20, + kCollectionReserved5Bit = 21, + kCollectionReserved6Bit = 22, + kCollectionReserved7Bit = 23, + kCollectionReserved8Bit = 24, + kCollectionReserved9Bit = 25, + kCollectionReserved10Bit = 26, + kCollectionReserved11Bit = 27, + kCollectionReserved12Bit = 28, + kCollectionReserved13Bit = 29, + kCollectionPersistenceBit = 30, + kCollectionLockBit = 31 +} + +static if (D_LP64) +{ + enum : long + { + kCollectionUser0Mask = 1L << kCollectionUser0Bit, + kCollectionUser1Mask = 1L << kCollectionUser1Bit, + kCollectionUser2Mask = 1L << kCollectionUser2Bit, + kCollectionUser3Mask = 1L << kCollectionUser3Bit, + kCollectionUser4Mask = 1L << kCollectionUser4Bit, + kCollectionUser5Mask = 1L << kCollectionUser5Bit, + kCollectionUser6Mask = 1L << kCollectionUser6Bit, + kCollectionUser7Mask = 1L << kCollectionUser7Bit, + kCollectionUser8Mask = 1L << kCollectionUser8Bit, + kCollectionUser9Mask = 1L << kCollectionUser9Bit, + kCollectionUser10Mask = 1L << kCollectionUser10Bit, + kCollectionUser11Mask = 1L << kCollectionUser11Bit, + kCollectionUser12Mask = 1L << kCollectionUser12Bit, + kCollectionUser13Mask = 1L << kCollectionUser13Bit, + kCollectionUser14Mask = 1L << kCollectionUser14Bit, + kCollectionUser15Mask = 1L << kCollectionUser15Bit, + kCollectionReserved0Mask = 1L << kCollectionReserved0Bit, + kCollectionReserved1Mask = 1L << kCollectionReserved1Bit, + kCollectionReserved2Mask = 1L << kCollectionReserved2Bit, + kCollectionReserved3Mask = 1L << kCollectionReserved3Bit, + kCollectionReserved4Mask = 1L << kCollectionReserved4Bit, + kCollectionReserved5Mask = 1L << kCollectionReserved5Bit, + kCollectionReserved6Mask = 1L << kCollectionReserved6Bit, + kCollectionReserved7Mask = 1L << kCollectionReserved7Bit, + kCollectionReserved8Mask = 1L << kCollectionReserved8Bit, + kCollectionReserved9Mask = 1L << kCollectionReserved9Bit, + kCollectionReserved10Mask = 1L << kCollectionReserved10Bit, + kCollectionReserved11Mask = 1L << kCollectionReserved11Bit, + kCollectionReserved12Mask = 1L << kCollectionReserved12Bit, + kCollectionReserved13Mask = 1L << kCollectionReserved13Bit, + kCollectionPersistenceMask = 1L << kCollectionPersistenceBit, + kCollectionLockMask = 1L << kCollectionLockBit + } +} + +else +{ + enum + { + kCollectionUser0Mask = 1 << kCollectionUser0Bit, + kCollectionUser1Mask = 1 << kCollectionUser1Bit, + kCollectionUser2Mask = 1 << kCollectionUser2Bit, + kCollectionUser3Mask = 1 << kCollectionUser3Bit, + kCollectionUser4Mask = 1 << kCollectionUser4Bit, + kCollectionUser5Mask = 1 << kCollectionUser5Bit, + kCollectionUser6Mask = 1 << kCollectionUser6Bit, + kCollectionUser7Mask = 1 << kCollectionUser7Bit, + kCollectionUser8Mask = 1 << kCollectionUser8Bit, + kCollectionUser9Mask = 1 << kCollectionUser9Bit, + kCollectionUser10Mask = 1 << kCollectionUser10Bit, + kCollectionUser11Mask = 1 << kCollectionUser11Bit, + kCollectionUser12Mask = 1 << kCollectionUser12Bit, + kCollectionUser13Mask = 1 << kCollectionUser13Bit, + kCollectionUser14Mask = 1 << kCollectionUser14Bit, + kCollectionUser15Mask = 1 << kCollectionUser15Bit, + kCollectionReserved0Mask = 1 << kCollectionReserved0Bit, + kCollectionReserved1Mask = 1 << kCollectionReserved1Bit, + kCollectionReserved2Mask = 1 << kCollectionReserved2Bit, + kCollectionReserved3Mask = 1 << kCollectionReserved3Bit, + kCollectionReserved4Mask = 1 << kCollectionReserved4Bit, + kCollectionReserved5Mask = 1 << kCollectionReserved5Bit, + kCollectionReserved6Mask = 1 << kCollectionReserved6Bit, + kCollectionReserved7Mask = 1 << kCollectionReserved7Bit, + kCollectionReserved8Mask = 1 << kCollectionReserved8Bit, + kCollectionReserved9Mask = 1 << kCollectionReserved9Bit, + kCollectionReserved10Mask = 1 << kCollectionReserved10Bit, + kCollectionReserved11Mask = 1 << kCollectionReserved11Bit, + kCollectionReserved12Mask = 1 << kCollectionReserved12Bit, + kCollectionReserved13Mask = 1 << kCollectionReserved13Bit, + kCollectionPersistenceMask = 1 << kCollectionPersistenceBit, + kCollectionLockMask = 1 << kCollectionLockBit + } +} + +extern (C) +{ + CollectionFlattenUPP NewCollectionFlattenUPP (CollectionFlattenProcPtr userRoutine); + CollectionExceptionUPP NewCollectionExceptionUPP (CollectionExceptionProcPtr userRoutine); + void DisposeCollectionFlattenUPP (CollectionFlattenUPP userUPP); + void DisposeCollectionExceptionUPP (CollectionExceptionUPP userUPP); + short InvokeCollectionFlattenUPP (int size, void* data, void* refCon, CollectionFlattenUPP userUPP); + short InvokeCollectionExceptionUPP (Collection c, short status, CollectionExceptionUPP userUPP); + Collection NewCollection (); + void DisposeCollection (Collection c); + Collection CloneCollection (Collection c); + int CountCollectionOwners (Collection c); + int RetainCollection (Collection c); + int ReleaseCollection (Collection c); + uint GetCollectionRetainCount (Collection c); + Collection CopyCollection (Collection srcCollection, Collection dstCollection); + int GetCollectionDefaultAttributes (Collection c); + void SetCollectionDefaultAttributes (Collection c, int whichAttributes, int newAttributes); + int CountCollectionItems (Collection c); + short AddCollectionItem (Collection c, uint tag, int id, int itemSize, void* itemData); + short GetCollectionItem (Collection c, uint tag, int id, SInt32* itemSize, void* itemData); + short RemoveCollectionItem (Collection c, uint tag, int id); + short SetCollectionItemInfo (Collection c, uint tag, int id, int whichAttributes, int newAttributes); + short GetCollectionItemInfo (Collection c, uint tag, int id, SInt32* itemIndex, SInt32* itemSize, SInt32* attributes); + short ReplaceIndexedCollectionItem (Collection c, int itemIndex, int itemSize, void* itemData); + short GetIndexedCollectionItem (Collection c, int itemIndex, SInt32* itemSize, void* itemData); + short RemoveIndexedCollectionItem (Collection c, int itemIndex); + short SetIndexedCollectionItemInfo (Collection c, int itemIndex, int whichAttributes, int newAttributes); + short GetIndexedCollectionItemInfo (Collection c, int itemIndex, CollectionTag* tag, SInt32* id, SInt32* itemSize, SInt32* attributes); + ubyte CollectionTagExists (Collection c, uint tag); + int CountCollectionTags (Collection c); + short GetIndexedCollectionTag (Collection c, int tagIndex, CollectionTag* tag); + int CountTaggedCollectionItems (Collection c, uint tag); + short GetTaggedCollectionItem (Collection c, uint tag, int whichItem, SInt32* itemSize, void* itemData); + short GetTaggedCollectionItemInfo (Collection c, uint tag, int whichItem, SInt32* id, SInt32* itemIndex, SInt32* itemSize, SInt32* attributes); + void PurgeCollection (Collection c, int whichAttributes, int matchingAttributes); + void PurgeCollectionTag (Collection c, uint tag); + void EmptyCollection (Collection c); + short FlattenCollection (Collection c, CollectionFlattenUPP flattenProc, void* refCon); + short FlattenPartialCollection (Collection c, CollectionFlattenUPP flattenProc, void* refCon, int whichAttributes, int matchingAttributes); + short UnflattenCollection (Collection c, CollectionFlattenUPP flattenProc, void* refCon); + CollectionExceptionUPP GetCollectionExceptionProc (Collection c); + void SetCollectionExceptionProc (Collection c, CollectionExceptionUPP exceptionProc); + Collection GetNewCollection (short collectionID); + short AddCollectionItemHdl (Collection aCollection, uint tag, int id, Handle itemData); + short GetCollectionItemHdl (Collection aCollection, uint tag, int id, Handle itemData); + short ReplaceIndexedCollectionItemHdl (Collection aCollection, int itemIndex, Handle itemData); + short GetIndexedCollectionItemHdl (Collection aCollection, int itemIndex, Handle itemData); + short FlattenCollectionToHdl (Collection aCollection, Handle flattened); + short UnflattenCollectionFromHdl (Collection aCollection, Handle flattened); +} \ No newline at end of file