{-# INCLUDE #-} {-# LANGUAGE ForeignFunctionInterface, EmptyDataDecls #-} module Database.TokyoCabinet.Map.C where import Data.Word import Foreign.Ptr import Foreign.C.Types import Foreign.C.String import Foreign.ForeignPtr import Database.TokyoCabinet.List.C data Map k v = Map { unMap :: !(ForeignPtr MAP) } data MAP foreign import ccall safe "tcmapnew" c_tcmapnew :: IO (Ptr MAP) foreign import ccall safe "tcmapnew2" c_tcmapnew2 :: Word32 -> IO (Ptr MAP) foreign import ccall safe "tcmapdup" c_tcmapdup :: Ptr MAP -> IO (Ptr MAP) foreign import ccall safe "tcmapdel" c_tcmapdel :: Ptr MAP -> IO () foreign import ccall safe "&tcmapdel" tcmapFinalizer :: FunPtr (Ptr MAP -> IO ()) foreign import ccall safe "tcmapput" c_tcmapput :: Ptr MAP -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO () foreign import ccall safe "tcmapput2" c_tcmapput2 :: Ptr MAP -> CString -> CString -> IO () foreign import ccall safe "tcmapputkeep" c_tcmapputkeep :: Ptr MAP -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO Bool foreign import ccall safe "tcmapputkeep2" c_tcmapputkeep2 :: Ptr MAP -> CString -> CString -> IO Bool foreign import ccall safe "tcmapputcat" c_tcmapputcat :: Ptr MAP -> Ptr Word8 -> CInt -> Ptr Word8 -> CInt -> IO () foreign import ccall safe "tcmapputcat2" c_tcmapputcat2 :: Ptr MAP -> CString -> CString -> IO () foreign import ccall safe "tcmapout" c_tcmapout :: Ptr MAP -> Ptr Word8 -> CInt -> IO Bool foreign import ccall safe "tcmapout2" c_tcmapout2 :: Ptr MAP -> CString -> IO Bool foreign import ccall safe "tcmapget" c_tcmapget :: Ptr MAP -> Ptr Word8 -> CInt -> Ptr CInt -> IO (Ptr Word8) foreign import ccall safe "tcmapget2" c_tcmapget2 :: Ptr MAP -> CString -> IO CString foreign import ccall safe "tcmapmove" c_tcmapmove :: Ptr MAP -> Ptr Word8 -> CInt -> Bool -> IO Bool foreign import ccall safe "tcmapmove2" c_tcmapmove2 :: Ptr MAP -> CString -> Bool -> IO Bool foreign import ccall safe "tcmapiterinit" c_tcmapiterinit :: Ptr MAP -> IO () foreign import ccall safe "tcmapiternext" c_tcmapiternext :: Ptr MAP -> Ptr CInt -> IO (Ptr Word8) foreign import ccall safe "tcmapiternext2" c_tcmapiternext2 :: Ptr MAP -> IO CString foreign import ccall safe "tcmaprnum" c_tcmaprnum :: Ptr MAP -> IO Word64 foreign import ccall safe "tcmapmsiz" c_tcmapmsiz :: Ptr MAP -> IO Word64 foreign import ccall safe "tcmapkeys" c_tcmapkeys :: Ptr MAP -> IO (Ptr LIST) foreign import ccall safe "tcmapvals" c_tcmapvals :: Ptr MAP -> IO (Ptr LIST) foreign import ccall safe "tcmapaddint" c_tcmapaddint :: Ptr MAP -> Ptr Word8 -> CInt -> CInt -> IO CInt foreign import ccall safe "tcmapadddouble" c_tcmapadddouble :: Ptr MAP -> Ptr Word8 -> CInt -> CDouble -> IO CDouble foreign import ccall safe "tcmapclear" c_tcmapclear :: Ptr MAP -> IO () foreign import ccall safe "tcmapcutfront" c_tcmapcutfront :: Ptr MAP -> CInt -> IO () foreign import ccall safe "tcmapdump" c_tcmapdump :: Ptr MAP -> Ptr CInt -> IO (Ptr Word8) foreign import ccall safe "tcmapload" c_tcmapload :: Ptr Word8 -> CInt -> IO (Ptr MAP)