module Database.Cassandra.Thrift.Cassandra_Iface where
import Thrift
import Data.Typeable ( Typeable )
import Control.Exception
import qualified Data.Map as Map
import qualified Data.Set as Set
import Data.Int
import Database.Cassandra.Thrift.Cassandra_Types

class Cassandra_Iface a where
  get :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO ColumnOrSuperColumn
  get_slice :: a -> Maybe String -> Maybe String -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO [ColumnOrSuperColumn]
  multiget :: a -> Maybe String -> Maybe [String] -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO (Map.Map String ColumnOrSuperColumn)
  multiget_slice :: a -> Maybe String -> Maybe [String] -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO (Map.Map String [ColumnOrSuperColumn])
  get_count :: a -> Maybe String -> Maybe String -> Maybe ColumnParent -> Maybe ConsistencyLevel -> IO Int
  get_key_range :: a -> Maybe String -> Maybe String -> Maybe String -> Maybe String -> Maybe Int -> Maybe ConsistencyLevel -> IO [String]
  get_range_slice :: a -> Maybe String -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe String -> Maybe String -> Maybe Int -> Maybe ConsistencyLevel -> IO [KeySlice]
  insert :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe String -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
  batch_insert :: a -> Maybe String -> Maybe String -> Maybe (Map.Map String [ColumnOrSuperColumn]) -> Maybe ConsistencyLevel -> IO ()
  remove :: a -> Maybe String -> Maybe String -> Maybe ColumnPath -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
  get_string_property :: a -> Maybe String -> IO String
  get_string_list_property :: a -> Maybe String -> IO [String]
  describe_keyspace :: a -> Maybe String -> IO (Map.Map String (Map.Map String String))