{-# LANGUAGE DeriveDataTypeable #-}
{-# OPTIONS_GHC -fno-warn-missing-fields #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-----------------------------------------------------------------
-- Autogenerated by Thrift                                     --
--                                                             --
-- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
-----------------------------------------------------------------

module Database.Cassandra.Thrift.Cassandra_Iface where
import Prelude ( Bool(..), Enum, Double, String, Maybe(..),
                 Eq, Show, Ord,
                 return, length, IO, fromIntegral, fromEnum, toEnum,
                 (&&), (||), (==), (++), ($), (-) )

import Control.Exception
import Data.ByteString.Lazy
import Data.Int
import Data.Typeable ( Typeable )
import qualified Data.Map as Map
import qualified Data.Set as Set

import Thrift


import Database.Cassandra.Thrift.Cassandra_Types

class Cassandra_Iface a where
  login :: a -> Maybe AuthenticationRequest -> IO ()
  set_keyspace :: a -> Maybe String -> IO ()
  get :: a -> Maybe ByteString -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO ColumnOrSuperColumn
  get_slice :: a -> Maybe ByteString -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO [ColumnOrSuperColumn]
  get_count :: a -> Maybe ByteString -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO Int32
  multiget_slice :: a -> Maybe [ByteString] -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO (Map.Map ByteString [ColumnOrSuperColumn])
  multiget_count :: a -> Maybe [ByteString] -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO (Map.Map ByteString Int32)
  get_range_slices :: a -> Maybe ColumnParent -> Maybe SlicePredicate -> Maybe KeyRange -> Maybe ConsistencyLevel -> IO [KeySlice]
  get_indexed_slices :: a -> Maybe ColumnParent -> Maybe IndexClause -> Maybe SlicePredicate -> Maybe ConsistencyLevel -> IO [KeySlice]
  insert :: a -> Maybe ByteString -> Maybe ColumnParent -> Maybe Column -> Maybe ConsistencyLevel -> IO ()
  add :: a -> Maybe ByteString -> Maybe ColumnParent -> Maybe CounterColumn -> Maybe ConsistencyLevel -> IO ()
  remove :: a -> Maybe ByteString -> Maybe ColumnPath -> Maybe Int64 -> Maybe ConsistencyLevel -> IO ()
  remove_counter :: a -> Maybe ByteString -> Maybe ColumnPath -> Maybe ConsistencyLevel -> IO ()
  batch_mutate :: a -> Maybe (Map.Map ByteString (Map.Map String [Mutation])) -> Maybe ConsistencyLevel -> IO ()
  truncate :: a -> Maybe String -> IO ()
  describe_schema_versions :: a -> IO (Map.Map String [String])
  describe_keyspaces :: a -> IO [KsDef]
  describe_cluster_name :: a -> IO String
  describe_version :: a -> IO String
  describe_ring :: a -> Maybe String -> IO [TokenRange]
  describe_partitioner :: a -> IO String
  describe_snitch :: a -> IO String
  describe_keyspace :: a -> Maybe String -> IO KsDef
  describe_splits :: a -> Maybe String -> Maybe String -> Maybe String -> Maybe Int32 -> IO [String]
  system_add_column_family :: a -> Maybe CfDef -> IO String
  system_drop_column_family :: a -> Maybe String -> IO String
  system_add_keyspace :: a -> Maybe KsDef -> IO String
  system_drop_keyspace :: a -> Maybe String -> IO String
  system_update_keyspace :: a -> Maybe KsDef -> IO String
  system_update_column_family :: a -> Maybe CfDef -> IO String
  execute_cql_query :: a -> Maybe ByteString -> Maybe Compression -> IO CqlResult