{-# LANGUAGE DeriveDataTypeable #-} module Database.Cassandra.Thrift.Cassandra_Client(login,get,get_slice,multiget,multiget_slice,get_count,get_range_slice,get_range_slices,insert,batch_insert,remove,batch_mutate,get_string_property,get_string_list_property,describe_keyspaces,describe_cluster_name,describe_version,describe_ring,describe_keyspace,describe_splits) where import Data.IORef 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 import Database.Cassandra.Thrift.Cassandra seqid = newIORef 0 login (ip,op) arg_keyspace arg_auth_request = do send_login op arg_keyspace arg_auth_request recv_login ip send_login op arg_keyspace arg_auth_request = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("login", M_CALL, seqn) write_Login_args op (Login_args{f_Login_args_keyspace=Just arg_keyspace,f_Login_args_auth_request=Just arg_auth_request}) writeMessageEnd op tFlush (getTransport op) recv_login ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Login_result ip readMessageEnd ip case f_Login_result_authnx res of Nothing -> return () Just _v -> throw _v case f_Login_result_authzx res of Nothing -> return () Just _v -> throw _v return () get (ip,op) arg_keyspace arg_key arg_column_path arg_consistency_level = do send_get op arg_keyspace arg_key arg_column_path arg_consistency_level recv_get ip send_get op arg_keyspace arg_key arg_column_path arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("get", M_CALL, seqn) write_Get_args op (Get_args{f_Get_args_keyspace=Just arg_keyspace,f_Get_args_key=Just arg_key,f_Get_args_column_path=Just arg_column_path,f_Get_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_get ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Get_result ip readMessageEnd ip case f_Get_result_success res of Just v -> return v Nothing -> do case f_Get_result_ire res of Nothing -> return () Just _v -> throw _v case f_Get_result_nfe res of Nothing -> return () Just _v -> throw _v case f_Get_result_ue res of Nothing -> return () Just _v -> throw _v case f_Get_result_te res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "get failed: unknown result") get_slice (ip,op) arg_keyspace arg_key arg_column_parent arg_predicate arg_consistency_level = do send_get_slice op arg_keyspace arg_key arg_column_parent arg_predicate arg_consistency_level recv_get_slice ip send_get_slice op arg_keyspace arg_key arg_column_parent arg_predicate arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("get_slice", M_CALL, seqn) write_Get_slice_args op (Get_slice_args{f_Get_slice_args_keyspace=Just arg_keyspace,f_Get_slice_args_key=Just arg_key,f_Get_slice_args_column_parent=Just arg_column_parent,f_Get_slice_args_predicate=Just arg_predicate,f_Get_slice_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_get_slice ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Get_slice_result ip readMessageEnd ip case f_Get_slice_result_success res of Just v -> return v Nothing -> do case f_Get_slice_result_ire res of Nothing -> return () Just _v -> throw _v case f_Get_slice_result_ue res of Nothing -> return () Just _v -> throw _v case f_Get_slice_result_te res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "get_slice failed: unknown result") multiget (ip,op) arg_keyspace arg_keys arg_column_path arg_consistency_level = do send_multiget op arg_keyspace arg_keys arg_column_path arg_consistency_level recv_multiget ip send_multiget op arg_keyspace arg_keys arg_column_path arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("multiget", M_CALL, seqn) write_Multiget_args op (Multiget_args{f_Multiget_args_keyspace=Just arg_keyspace,f_Multiget_args_keys=Just arg_keys,f_Multiget_args_column_path=Just arg_column_path,f_Multiget_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_multiget ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Multiget_result ip readMessageEnd ip case f_Multiget_result_success res of Just v -> return v Nothing -> do case f_Multiget_result_ire res of Nothing -> return () Just _v -> throw _v case f_Multiget_result_ue res of Nothing -> return () Just _v -> throw _v case f_Multiget_result_te res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "multiget failed: unknown result") multiget_slice (ip,op) arg_keyspace arg_keys arg_column_parent arg_predicate arg_consistency_level = do send_multiget_slice op arg_keyspace arg_keys arg_column_parent arg_predicate arg_consistency_level recv_multiget_slice ip send_multiget_slice op arg_keyspace arg_keys arg_column_parent arg_predicate arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("multiget_slice", M_CALL, seqn) write_Multiget_slice_args op (Multiget_slice_args{f_Multiget_slice_args_keyspace=Just arg_keyspace,f_Multiget_slice_args_keys=Just arg_keys,f_Multiget_slice_args_column_parent=Just arg_column_parent,f_Multiget_slice_args_predicate=Just arg_predicate,f_Multiget_slice_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_multiget_slice ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Multiget_slice_result ip readMessageEnd ip case f_Multiget_slice_result_success res of Just v -> return v Nothing -> do case f_Multiget_slice_result_ire res of Nothing -> return () Just _v -> throw _v case f_Multiget_slice_result_ue res of Nothing -> return () Just _v -> throw _v case f_Multiget_slice_result_te res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "multiget_slice failed: unknown result") get_count (ip,op) arg_keyspace arg_key arg_column_parent arg_consistency_level = do send_get_count op arg_keyspace arg_key arg_column_parent arg_consistency_level recv_get_count ip send_get_count op arg_keyspace arg_key arg_column_parent arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("get_count", M_CALL, seqn) write_Get_count_args op (Get_count_args{f_Get_count_args_keyspace=Just arg_keyspace,f_Get_count_args_key=Just arg_key,f_Get_count_args_column_parent=Just arg_column_parent,f_Get_count_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_get_count ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Get_count_result ip readMessageEnd ip case f_Get_count_result_success res of Just v -> return v Nothing -> do case f_Get_count_result_ire res of Nothing -> return () Just _v -> throw _v case f_Get_count_result_ue res of Nothing -> return () Just _v -> throw _v case f_Get_count_result_te res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "get_count failed: unknown result") get_range_slice (ip,op) arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level = do send_get_range_slice op arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level recv_get_range_slice ip send_get_range_slice op arg_keyspace arg_column_parent arg_predicate arg_start_key arg_finish_key arg_row_count arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("get_range_slice", M_CALL, seqn) write_Get_range_slice_args op (Get_range_slice_args{f_Get_range_slice_args_keyspace=Just arg_keyspace,f_Get_range_slice_args_column_parent=Just arg_column_parent,f_Get_range_slice_args_predicate=Just arg_predicate,f_Get_range_slice_args_start_key=Just arg_start_key,f_Get_range_slice_args_finish_key=Just arg_finish_key,f_Get_range_slice_args_row_count=Just arg_row_count,f_Get_range_slice_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_get_range_slice ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Get_range_slice_result ip readMessageEnd ip case f_Get_range_slice_result_success res of Just v -> return v Nothing -> do case f_Get_range_slice_result_ire res of Nothing -> return () Just _v -> throw _v case f_Get_range_slice_result_ue res of Nothing -> return () Just _v -> throw _v case f_Get_range_slice_result_te res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "get_range_slice failed: unknown result") get_range_slices (ip,op) arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level = do send_get_range_slices op arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level recv_get_range_slices ip send_get_range_slices op arg_keyspace arg_column_parent arg_predicate arg_range arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("get_range_slices", M_CALL, seqn) write_Get_range_slices_args op (Get_range_slices_args{f_Get_range_slices_args_keyspace=Just arg_keyspace,f_Get_range_slices_args_column_parent=Just arg_column_parent,f_Get_range_slices_args_predicate=Just arg_predicate,f_Get_range_slices_args_range=Just arg_range,f_Get_range_slices_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_get_range_slices ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Get_range_slices_result ip readMessageEnd ip case f_Get_range_slices_result_success res of Just v -> return v Nothing -> do case f_Get_range_slices_result_ire res of Nothing -> return () Just _v -> throw _v case f_Get_range_slices_result_ue res of Nothing -> return () Just _v -> throw _v case f_Get_range_slices_result_te res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "get_range_slices failed: unknown result") insert (ip,op) arg_keyspace arg_key arg_column_path arg_value arg_timestamp arg_consistency_level = do send_insert op arg_keyspace arg_key arg_column_path arg_value arg_timestamp arg_consistency_level recv_insert ip send_insert op arg_keyspace arg_key arg_column_path arg_value arg_timestamp arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("insert", M_CALL, seqn) write_Insert_args op (Insert_args{f_Insert_args_keyspace=Just arg_keyspace,f_Insert_args_key=Just arg_key,f_Insert_args_column_path=Just arg_column_path,f_Insert_args_value=Just arg_value,f_Insert_args_timestamp=Just arg_timestamp,f_Insert_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_insert ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Insert_result ip readMessageEnd ip case f_Insert_result_ire res of Nothing -> return () Just _v -> throw _v case f_Insert_result_ue res of Nothing -> return () Just _v -> throw _v case f_Insert_result_te res of Nothing -> return () Just _v -> throw _v return () batch_insert (ip,op) arg_keyspace arg_key arg_cfmap arg_consistency_level = do send_batch_insert op arg_keyspace arg_key arg_cfmap arg_consistency_level recv_batch_insert ip send_batch_insert op arg_keyspace arg_key arg_cfmap arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("batch_insert", M_CALL, seqn) write_Batch_insert_args op (Batch_insert_args{f_Batch_insert_args_keyspace=Just arg_keyspace,f_Batch_insert_args_key=Just arg_key,f_Batch_insert_args_cfmap=Just arg_cfmap,f_Batch_insert_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_batch_insert ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Batch_insert_result ip readMessageEnd ip case f_Batch_insert_result_ire res of Nothing -> return () Just _v -> throw _v case f_Batch_insert_result_ue res of Nothing -> return () Just _v -> throw _v case f_Batch_insert_result_te res of Nothing -> return () Just _v -> throw _v return () remove (ip,op) arg_keyspace arg_key arg_column_path arg_timestamp arg_consistency_level = do send_remove op arg_keyspace arg_key arg_column_path arg_timestamp arg_consistency_level recv_remove ip send_remove op arg_keyspace arg_key arg_column_path arg_timestamp arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("remove", M_CALL, seqn) write_Remove_args op (Remove_args{f_Remove_args_keyspace=Just arg_keyspace,f_Remove_args_key=Just arg_key,f_Remove_args_column_path=Just arg_column_path,f_Remove_args_timestamp=Just arg_timestamp,f_Remove_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_remove ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Remove_result ip readMessageEnd ip case f_Remove_result_ire res of Nothing -> return () Just _v -> throw _v case f_Remove_result_ue res of Nothing -> return () Just _v -> throw _v case f_Remove_result_te res of Nothing -> return () Just _v -> throw _v return () batch_mutate (ip,op) arg_keyspace arg_mutation_map arg_consistency_level = do send_batch_mutate op arg_keyspace arg_mutation_map arg_consistency_level recv_batch_mutate ip send_batch_mutate op arg_keyspace arg_mutation_map arg_consistency_level = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("batch_mutate", M_CALL, seqn) write_Batch_mutate_args op (Batch_mutate_args{f_Batch_mutate_args_keyspace=Just arg_keyspace,f_Batch_mutate_args_mutation_map=Just arg_mutation_map,f_Batch_mutate_args_consistency_level=Just arg_consistency_level}) writeMessageEnd op tFlush (getTransport op) recv_batch_mutate ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Batch_mutate_result ip readMessageEnd ip case f_Batch_mutate_result_ire res of Nothing -> return () Just _v -> throw _v case f_Batch_mutate_result_ue res of Nothing -> return () Just _v -> throw _v case f_Batch_mutate_result_te res of Nothing -> return () Just _v -> throw _v return () get_string_property (ip,op) arg_property = do send_get_string_property op arg_property recv_get_string_property ip send_get_string_property op arg_property = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("get_string_property", M_CALL, seqn) write_Get_string_property_args op (Get_string_property_args{f_Get_string_property_args_property=Just arg_property}) writeMessageEnd op tFlush (getTransport op) recv_get_string_property ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Get_string_property_result ip readMessageEnd ip case f_Get_string_property_result_success res of Just v -> return v Nothing -> do throw (AppExn AE_MISSING_RESULT "get_string_property failed: unknown result") get_string_list_property (ip,op) arg_property = do send_get_string_list_property op arg_property recv_get_string_list_property ip send_get_string_list_property op arg_property = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("get_string_list_property", M_CALL, seqn) write_Get_string_list_property_args op (Get_string_list_property_args{f_Get_string_list_property_args_property=Just arg_property}) writeMessageEnd op tFlush (getTransport op) recv_get_string_list_property ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Get_string_list_property_result ip readMessageEnd ip case f_Get_string_list_property_result_success res of Just v -> return v Nothing -> do throw (AppExn AE_MISSING_RESULT "get_string_list_property failed: unknown result") describe_keyspaces (ip,op) = do send_describe_keyspaces op recv_describe_keyspaces ip send_describe_keyspaces op = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("describe_keyspaces", M_CALL, seqn) write_Describe_keyspaces_args op (Describe_keyspaces_args{}) writeMessageEnd op tFlush (getTransport op) recv_describe_keyspaces ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Describe_keyspaces_result ip readMessageEnd ip case f_Describe_keyspaces_result_success res of Just v -> return v Nothing -> do throw (AppExn AE_MISSING_RESULT "describe_keyspaces failed: unknown result") describe_cluster_name (ip,op) = do send_describe_cluster_name op recv_describe_cluster_name ip send_describe_cluster_name op = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("describe_cluster_name", M_CALL, seqn) write_Describe_cluster_name_args op (Describe_cluster_name_args{}) writeMessageEnd op tFlush (getTransport op) recv_describe_cluster_name ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Describe_cluster_name_result ip readMessageEnd ip case f_Describe_cluster_name_result_success res of Just v -> return v Nothing -> do throw (AppExn AE_MISSING_RESULT "describe_cluster_name failed: unknown result") describe_version (ip,op) = do send_describe_version op recv_describe_version ip send_describe_version op = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("describe_version", M_CALL, seqn) write_Describe_version_args op (Describe_version_args{}) writeMessageEnd op tFlush (getTransport op) recv_describe_version ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Describe_version_result ip readMessageEnd ip case f_Describe_version_result_success res of Just v -> return v Nothing -> do throw (AppExn AE_MISSING_RESULT "describe_version failed: unknown result") describe_ring (ip,op) arg_keyspace = do send_describe_ring op arg_keyspace recv_describe_ring ip send_describe_ring op arg_keyspace = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("describe_ring", M_CALL, seqn) write_Describe_ring_args op (Describe_ring_args{f_Describe_ring_args_keyspace=Just arg_keyspace}) writeMessageEnd op tFlush (getTransport op) recv_describe_ring ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Describe_ring_result ip readMessageEnd ip case f_Describe_ring_result_success res of Just v -> return v Nothing -> do case f_Describe_ring_result_ire res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "describe_ring failed: unknown result") describe_keyspace (ip,op) arg_keyspace = do send_describe_keyspace op arg_keyspace recv_describe_keyspace ip send_describe_keyspace op arg_keyspace = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("describe_keyspace", M_CALL, seqn) write_Describe_keyspace_args op (Describe_keyspace_args{f_Describe_keyspace_args_keyspace=Just arg_keyspace}) writeMessageEnd op tFlush (getTransport op) recv_describe_keyspace ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Describe_keyspace_result ip readMessageEnd ip case f_Describe_keyspace_result_success res of Just v -> return v Nothing -> do case f_Describe_keyspace_result_nfe res of Nothing -> return () Just _v -> throw _v throw (AppExn AE_MISSING_RESULT "describe_keyspace failed: unknown result") describe_splits (ip,op) arg_start_token arg_end_token arg_keys_per_split = do send_describe_splits op arg_start_token arg_end_token arg_keys_per_split recv_describe_splits ip send_describe_splits op arg_start_token arg_end_token arg_keys_per_split = do seq <- seqid seqn <- readIORef seq writeMessageBegin op ("describe_splits", M_CALL, seqn) write_Describe_splits_args op (Describe_splits_args{f_Describe_splits_args_start_token=Just arg_start_token,f_Describe_splits_args_end_token=Just arg_end_token,f_Describe_splits_args_keys_per_split=Just arg_keys_per_split}) writeMessageEnd op tFlush (getTransport op) recv_describe_splits ip = do (fname, mtype, rseqid) <- readMessageBegin ip if mtype == M_EXCEPTION then do x <- readAppExn ip readMessageEnd ip throw x else return () res <- read_Describe_splits_result ip readMessageEnd ip case f_Describe_splits_result_success res of Just v -> return v Nothing -> do throw (AppExn AE_MISSING_RESULT "describe_splits failed: unknown result")