From: PHO <pho@cielonegro.org>
Date: Sat, 9 Oct 2010 05:55:06 +0000 (+0900)
Subject: AVLTree.h
X-Git-Url: https://git.cielonegro.org/gitweb.cgi?a=commitdiff_plain;h=40230c2d18a8a925f22add7f00e6ac7d98e2d5b3;p=bindings-CarbonCore.git

AVLTree.h
---

diff --git a/Bindings/CoreServices/CarbonCore/AVLTree.hsc b/Bindings/CoreServices/CarbonCore/AVLTree.hsc
new file mode 100644
index 0000000..7692547
--- /dev/null
+++ b/Bindings/CoreServices/CarbonCore/AVLTree.hsc
@@ -0,0 +1,56 @@
+#include <bindings.dsl.h>
+#include <CoreServices/CoreServices.h>
+
+module Bindings.CoreServices.CarbonCore.AVLTree where
+#strict_import
+import Bindings.CoreServices.CarbonCore.MacTypes
+
+#synonym_t AVLVisitStage, <UInt16>
+#num kAVLPreOrder
+#num kAVLInOrder
+#num kAVLPostOrder
+
+#synonym_t AVLOrder, <UInt16>
+#num kLeftToRight
+#num kRightToLeft
+
+#synonym_t AVLNodeType, <UInt16>
+#num kAVLIsTree
+#num kAVLIsLeftBranch
+#num kAVLIsRightBranch
+#num kAVLIsLeaf
+#num kAVLNullNode
+
+#num errItemAlreadyInTree
+#num errNotValidTree
+#num errItemNotFoundInTree
+#num errCanNotInsertWhileWalkProcInProgress
+#num errTreeIsLocked
+
+#starttype struct AVLTreeStruct
+#  field signature, <OSType>
+#  array_field privateStuff, CULong
+#stoptype
+#synonym_t AVLTreePtr, Ptr <AVLTreeStruct>
+
+#callback AVLCompareItemsProcPtr, <AVLTreePtr> -> Ptr () -> Ptr () -> <AVLNodeType> -> IO <SInt32>
+#callback AVLItemSizeProcPtr    , <AVLTreePtr> -> Ptr () -> <ByteCount>
+#callback AVLDisposeItemProcPtr , <AVLTreePtr> -> Ptr () -> IO ()
+#callback AVLWalkProcPtr        , <AVLTreePtr> -> Ptr () -> <AVLVisitStage> -> <AVLNodeType> -> <UInt32> -> <SInt32> -> Ptr () -> IO <OSErr>
+
+#synonym_t AVLCompareItemsUPP, <AVLCompareItemsProcPtr>
+#synonym_t AVLItemSizeUPP    , <AVLItemSizeProcPtr>
+#synonym_t AVLDisposeItemUPP , <AVLDisposeItemProcPtr>
+#synonym_t AVLWalkUPP        , <AVLWalkProcPtr>
+
+#if !__LP64__
+#  ccall AVLInit      , <UInt32> -> <AVLCompareItemsUPP> -> <AVLItemSizeUPP> -> <AVLDisposeItemUPP> -> Ptr () -> Ptr <AVLTreePtr> -> IO <OSErr>
+#  ccall AVLDispose   , Ptr <AVLTreePtr> -> <AVLOrder> -> IO <OSErr>
+#  ccall AVLWalk      , <AVLTreePtr> -> <AVLWalkUPP> -> <AVLOrder> -> Ptr () -> IO <OSErr>
+#  ccall AVLCount     , <AVLTreePtr> -> Ptr <UInt32> -> IO <OSErr>
+#  ccall AVLGetIndItem, <AVLTreePtr> -> <UInt32> -> Ptr () -> Ptr <ByteCount> -> IO <OSErr>
+#  ccall AVLInsert    , <AVLTreePtr> -> Ptr () -> IO <OSErr>
+#  ccall AVLRemove    , <AVLTreePtr> -> Ptr () -> Ptr () -> Ptr <ByteCount> -> IO <OSErr>
+#  ccall AVLFind      , <AVLTreePtr> -> Ptr () -> Ptr () -> Ptr <ByteCount> -> IO <OSErr>
+#  ccall AVLGetRefcon , <AVLTreePtr> -> Ptr (Ptr ()) -> IO <OSErr>
+#endif
diff --git a/bindings-carbon-core.cabal b/bindings-carbon-core.cabal
index e9ed6e3..90e7dd5 100644
--- a/bindings-carbon-core.cabal
+++ b/bindings-carbon-core.cabal
@@ -30,6 +30,7 @@ Library
 
     Exposed-Modules:
         Bindings.CoreServices.CarbonCore.AIFF
+        Bindings.CoreServices.CarbonCore.AVLTree
         Bindings.CoreServices.CarbonCore.MacTypes
 
     C-Sources: