| |  | tokyocabinet-haskell-0.0.5: Haskell binding of Tokyo Cabinet | Contents | Index | 
 | 
| | Database.TokyoCabinet.TDB | 
 | 
|  | 
| Description | 
| Interface to the table database. See also,
 http://tokyocabinet.sourceforge.net/spex-en.html#tctdbapi for details | 
|  | 
| Synopsis | 
|  | 
| | data  TDB |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  | newtype  AssocList k v = AssocList {} |  |  |  | new :: IO TDB |  |  |  | delete :: TDB -> IO () |  |  |  | ecode :: TDB -> IO ECODE |  |  |  | errmsg :: ECODE -> String |  |  |  | tune :: TDB -> Int64 -> Int8 -> Int8 -> [TuningOption] -> IO Bool |  |  |  | setcache :: TDB -> Int32 -> Int32 -> Int32 -> IO Bool |  |  |  | setxmsiz :: TDB -> Int64 -> IO Bool |  |  |  | open :: TDB -> String -> [OpenMode] -> IO Bool |  |  |  | close :: TDB -> IO Bool |  |  |  | put :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool |  |  |  | put' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool |  |  |  | putkeep :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool |  |  |  | putkeep' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool |  |  |  | putcat :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool |  |  |  | putcat' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool |  |  |  | out :: Storable k => TDB -> k -> IO Bool |  |  |  | get :: (Storable k, Storable v, Associative m) => TDB -> k -> IO (m k v) |  |  |  | get' :: (Storable k, Storable v) => TDB -> k -> IO (Maybe v) |  |  |  | vsiz :: Storable k => TDB -> k -> IO (Maybe Int) |  |  |  | iterinit :: TDB -> IO Bool |  |  |  | iternext :: Storable k => TDB -> IO (Maybe k) |  |  |  | fwmkeys :: (Storable k1, Storable k2, Sequence q) => TDB -> k1 -> Int -> IO (q k2) |  |  |  | addint :: Storable k => TDB -> k -> Int -> IO (Maybe Int) |  |  |  | adddouble :: Storable k => TDB -> k -> Double -> IO (Maybe Double) |  |  |  | sync :: TDB -> IO Bool |  |  |  | optimize :: TDB -> Int64 -> Int8 -> Int8 -> [TuningOption] -> IO Bool |  |  |  | vanish :: TDB -> IO Bool |  |  |  | copy :: TDB -> String -> IO Bool |  |  |  | tranbegin :: TDB -> IO Bool |  |  |  | trancommit :: TDB -> IO Bool |  |  |  | tranabort :: TDB -> IO Bool |  |  |  | path :: TDB -> IO (Maybe String) |  |  |  | rnum :: TDB -> IO Word64 |  |  |  | fsiz :: TDB -> IO Word64 |  |  |  | setindex :: TDB -> String -> IndexType -> IO Bool |  |  |  | genuid :: TDB -> IO (Maybe Int64) | 
 | 
|  | 
| Documentation | 
|  | 
| Example
 
  import Control.Monad (unless)
  import Database.TokyoCabinet.TDB
  import Database.TokyoCabinet.TDB.Query hiding (new)
  import qualified Database.TokyoCabinet.Map as M
  import qualified Database.TokyoCabinet.TDB.Query as Q (new)
 
  data Profile = Profile { name :: String
                         , age  :: Int } deriving Show
  insertProfile :: TDB -> Profile -> IO Bool
  insertProfile tdb profile =
      do m <- M.new
         M.put m "name" (name profile)
         M.put m "age" (show . age $ profile)
         Just pk <- genuid tdb
         put tdb (show pk) m
  main :: IO ()
  main = do t <- new
            open t "foo.tct" [OWRITER, OCREAT] >>= err t
            mapM_ (insertProfile t) [ Profile "tom" 23
                                    , Profile "bob" 24
                                    , Profile "alice" 20 ]
            q <- Q.new t
            addcond q "age" QCNUMGE "23"
            setorder q "name" QOSTRASC
            proc q $ pk cols -> do
              Just name <- M.get cols "name"
              putStrLn name
              M.put cols "name" (name ++ "!")
              return (QPPUT cols)
            close t >>= err t
            return ()
      where
        err tdb = flip unless $ ecode tdb >>= error . show
 | 
|  | 
| data  TDB | 
| |  Instances |  |  | 
 | 
|  | 
| data  ECODE | 
| | Represents error |  | Constructors |  | | ESUCCESS | success |  | ETHREAD | threading error |  | EINVALID | invalid operation |  | ENOFILE | file not found |  | ENOPERM | no permission |  | EMETA | invalid meta data |  | ERHEAD | invalid record header |  | EOPEN | open error |  | ECLOSE | close error |  | ETRUNC | trunc error |  | ESYNC | sync error |  | ESTAT | stat error |  | ESEEK | seek error |  | EREAD | read error |  | EWRITE | write error |  | EMMAP | mmap error |  | ELOCK | lock error |  | EUNLINK | unlink error |  | ERENAME | rename error |  | EMKDIR | mkdir error |  | ERMDIR | rmdir error |  | EKEEP | existing record |  | ENOREC | no record found |  | EMISC | miscellaneous error | 
 |  |  Instances |  |  | 
 | 
|  | 
| data  OpenMode | 
| | Represents open mode |  | Constructors |  | | OREADER | read only mode |  | OWRITER | write mode |  | OCREAT | if this value is included in open mode list, `open
 function' creates a new database if not exist. |  | OTRUNC | creates a new database regardless if one exists |  | ONOLCK | open the database file without file locking |  | OLCKNB | open the database file with locking performed
 without blocking. |  | OTSYNC | every transaction synchronizes updated contents
 with the device | 
 |  |  Instances |  |  | 
 | 
|  | 
| data  TuningOption | 
| | Constructors |  | | TLARGE |  |  | TDEFLATE |  |  | TBZIP |  |  | TTCBS |  |  | TEXCODEC |  | 
 |  |  Instances |  |  | 
 | 
|  | 
| data  IndexType | 
| | Represents the index type |  | Constructors |  | | ITLEXICAL | for lexical string |  | ITDECIMAL | for decimal string |  | ITOPT | the index is optimized |  | ITVOID | the index is removed |  | ITKEEP IndexType | if the index exists, setindex function merely returns failure | 
 |  |  Instances |  |  | 
 | 
|  | 
| newtype  AssocList k v | 
| | Constructors |  |  |  |  Instances |  |  | 
 | 
|  | 
| new :: IO TDB | 
| Create the new table database object. | 
|  | 
| delete :: TDB -> IO () | 
| Free object resource forcibly. | 
|  | 
| ecode :: TDB -> IO ECODE | 
| Get the last happened error code. | 
|  | 
| errmsg :: ECODE -> String | 
| Convert error code to message string. | 
|  | 
| tune | 
| | :: TDB | TDB object |  | -> Int64 | the number of elements of the bucket array |  | -> Int8 | the size of record alignment by power of 2 |  | -> Int8 | the maximum number of elements of the free block pool by power of 2 |  | -> [TuningOption] | options |  | -> IO Bool | if successful, the return value is True. |  | Set the tuning parameters. | 
 | 
|  | 
| setcache | 
| | :: TDB | TDB object |  | -> Int32 | the maximum number of records to be cached |  | -> Int32 | the maximum number of leaf nodes to be cached |  | -> Int32 | the maximum number of non-leaf nodes to be cached |  | -> IO Bool | if successful, the return value is True. |  | Set the caching parameters of a table database object. | 
 | 
|  | 
| setxmsiz | 
| | :: TDB | TDB object |  | -> Int64 | the size of the extra mapped memory |  | -> IO Bool | if successful, the return value is True. |  | Set the size of the extra mapped memory of a table database object. | 
 | 
|  | 
| open :: TDB -> String -> [OpenMode] -> IO Bool | 
| Open the table database file | 
|  | 
| close :: TDB -> IO Bool | 
| Open the database file | 
|  | 
| put :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool | 
| Store a record into a table database object. | 
|  | 
| put' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool | 
| Store a string record into a table database object with a zero
 separated column string. | 
|  | 
| putkeep :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool | 
| Store a new record into a table database object. | 
|  | 
| putkeep' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool | 
| Store a new string record into a table database object with a
 zero separated column string. | 
|  | 
| putcat :: (Storable k, Storable v, Associative m) => TDB -> v -> m k v -> IO Bool | 
| Concatenate columns of the existing record in a table database object. | 
|  | 
| putcat' :: (Storable k, Storable v) => TDB -> k -> v -> IO Bool | 
| Concatenate columns in a table database object with a zero
 separated column string. | 
|  | 
| out :: Storable k => TDB -> k -> IO Bool | 
| Remove a record of a table database object. | 
|  | 
| get :: (Storable k, Storable v, Associative m) => TDB -> k -> IO (m k v) | 
| Retrieve a record in a table database object. | 
|  | 
| get' :: (Storable k, Storable v) => TDB -> k -> IO (Maybe v) | 
| Retrieve a record in a table database object as a zero separated
 column string. | 
|  | 
| vsiz :: Storable k => TDB -> k -> IO (Maybe Int) | 
| Get the size of the value of a record in a table database object. | 
|  | 
| iterinit :: TDB -> IO Bool | 
| Initialize the iterator of a table database object. | 
|  | 
| iternext :: Storable k => TDB -> IO (Maybe k) | 
| Get the next primary key of the iterator of a table database object. | 
|  | 
| fwmkeys :: (Storable k1, Storable k2, Sequence q) => TDB -> k1 -> Int -> IO (q k2) | 
| Get forward matching primary keys in a table database object. | 
|  | 
| addint :: Storable k => TDB -> k -> Int -> IO (Maybe Int) | 
| Add an integer to a column of a record in a table database object. | 
|  | 
| adddouble :: Storable k => TDB -> k -> Double -> IO (Maybe Double) | 
| Add a real number to a column of a record in a table database object. | 
|  | 
| sync :: TDB -> IO Bool | 
| Synchronize updated contents of a table database object with the
 file and the device. | 
|  | 
| optimize | 
| | :: TDB | TDB object |  | -> Int64 | the number of elements of the bucket array |  | -> Int8 | the size of record alignment by power of 2 |  | -> Int8 | the maximum number of elements of the free block pool by power of 2 |  | -> [TuningOption] | options |  | -> IO Bool | if successful, the return value is True. |  | Optimize the file of a table database object. | 
 | 
|  | 
| vanish :: TDB -> IO Bool | 
| Remove all records of a table database object. | 
|  | 
| copy | 
| | :: TDB | TDB object |  | -> String | new file path |  | -> IO Bool | if successful, the return value is True |  | Copy the database file of a table database object. | 
 | 
|  | 
| tranbegin :: TDB -> IO Bool | 
| Begin the transaction of a table database object. | 
|  | 
| trancommit :: TDB -> IO Bool | 
| Commit the transaction of a table database object. | 
|  | 
| tranabort :: TDB -> IO Bool | 
| Abort the transaction of a table database object. | 
|  | 
| path :: TDB -> IO (Maybe String) | 
| Get the file path of a table database object. | 
|  | 
| rnum :: TDB -> IO Word64 | 
| Get the number of records of a table database object. | 
|  | 
| fsiz :: TDB -> IO Word64 | 
| Get the size of the database file of a table database object. | 
|  | 
| setindex :: TDB -> String -> IndexType -> IO Bool | 
| Set a column index to a table database object. | 
|  | 
| genuid :: TDB -> IO (Maybe Int64) | 
| Generate a unique ID number of a table database object. | 
|  | 
| Produced by Haddock version 2.4.2 |