----------------------------------------------------------------- -- Autogenerated by Thrift -- -- DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING -- @generated ----------------------------------------------------------------- {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE BangPatterns #-} {-# OPTIONS_GHC -fno-warn-unused-imports#-} {-# OPTIONS_GHC -fno-warn-overlapping-patterns#-} {-# OPTIONS_GHC -fno-warn-incomplete-patterns#-} {-# OPTIONS_GHC -fno-warn-incomplete-uni-patterns#-} {-# OPTIONS_GHC -fno-warn-incomplete-record-updates#-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} module Math.Calculator.Client (Calculator, divide, divideIO, send_divide, _build_divide, recv_divide, _parse_divide, quotRem, quotRemIO, send_quotRem, _build_quotRem, recv_quotRem, _parse_quotRem, put, putIO, send_put, _build_put, putMany, putManyIO, send_putMany, _build_putMany, get, getIO, send_get, _build_get, recv_get, _parse_get, unimplemented, unimplementedIO, send_unimplemented, _build_unimplemented, recv_unimplemented, _parse_unimplemented) where import qualified Control.Arrow as Arrow import qualified Control.Concurrent as Concurrent import qualified Control.Exception as Exception import qualified Control.Monad as Monad import qualified Control.Monad.Trans.Class as Trans import qualified Control.Monad.Trans.Reader as Reader import qualified Data.ByteString.Builder as ByteString import qualified Data.ByteString.Lazy as LBS import qualified Data.HashMap.Strict as HashMap import qualified Data.Int as Int import qualified Data.List as List import qualified Data.Proxy as Proxy import qualified Math.Adder.Client as Adder import qualified Prelude as Prelude import qualified Thrift.Binary.Parser as Parser import qualified Thrift.Codegen as Thrift import qualified Thrift.Protocol.ApplicationException.Types as Thrift import Data.Monoid ((<>)) import Prelude ((==), (=<<), (>>=), (<$>), (.)) import Math.Types data Calculator type instance Thrift.Super Calculator = Adder.Adder divide :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Prelude.Double -> Prelude.Double -> Thrift.ThriftM p c s Prelude.Double divide __field__dividend __field__divisor = do Thrift.ThriftEnv _proxy _channel _opts _counter <- Reader.ask Trans.lift (divideIO _proxy _channel _counter _opts __field__dividend __field__divisor) divideIO :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.RpcOptions -> Prelude.Double -> Prelude.Double -> Prelude.IO Prelude.Double divideIO _proxy _channel _counter _opts __field__dividend __field__divisor = do (_handle, _sendCob, _recvCob) <- Thrift.mkCallbacks (recv_divide _proxy) send_divide _proxy _channel _counter _sendCob _recvCob _opts __field__dividend __field__divisor Thrift.wait _handle send_divide :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.SendCallback -> Thrift.RecvCallback -> Thrift.RpcOptions -> Prelude.Double -> Prelude.Double -> Prelude.IO () send_divide _proxy _channel _counter _sendCob _recvCob _rpcOpts __field__dividend __field__divisor = do _seqNum <- _counter let _callMsg = LBS.toStrict (ByteString.toLazyByteString (_build_divide _proxy _seqNum __field__dividend __field__divisor)) Thrift.sendRequest _channel (Thrift.Request _callMsg (Thrift.setRpcPriority _rpcOpts Thrift.NormalPriority)) _sendCob _recvCob recv_divide :: (Thrift.Protocol p) => Proxy.Proxy p -> Thrift.Response -> Prelude.Either Exception.SomeException Prelude.Double recv_divide _proxy (Thrift.Response _response _) = Monad.join (Arrow.left (Exception.SomeException . Thrift.ProtocolException) (Parser.parse (_parse_divide _proxy) _response)) _build_divide :: Thrift.Protocol p => Proxy.Proxy p -> Int.Int32 -> Prelude.Double -> Prelude.Double -> ByteString.Builder _build_divide _proxy _seqNum __field__dividend __field__divisor = Thrift.genMsgBegin _proxy "divide" 1 _seqNum <> Thrift.genStruct _proxy (Thrift.genField _proxy "dividend" (Thrift.getDoubleType _proxy) 1 0 (Thrift.genDouble _proxy __field__dividend) : Thrift.genField _proxy "divisor" (Thrift.getDoubleType _proxy) 2 1 (Thrift.genDouble _proxy __field__divisor) : []) <> Thrift.genMsgEnd _proxy _parse_divide :: Thrift.Protocol p => Proxy.Proxy p -> Parser.Parser (Prelude.Either Exception.SomeException Prelude.Double) _parse_divide _proxy = do Thrift.MsgBegin _name _msgTy _ <- Thrift.parseMsgBegin _proxy _result <- case _msgTy of 1 -> Prelude.fail "divide: expected reply but got function call" 2 | _name == "divide" -> do let _idMap = HashMap.fromList [("divide_success", 0), ("divisionError", 1)] _fieldBegin <- Thrift.parseFieldBegin _proxy 0 _idMap case _fieldBegin of Thrift.FieldBegin _type _id _bool -> do case _id of 0 | _type == Thrift.getDoubleType _proxy -> Prelude.fmap Prelude.Right (Thrift.parseDouble _proxy) 1 | _type == Thrift.getStructType _proxy -> Prelude.fmap (Prelude.Left . Exception.SomeException) (Thrift.parseStruct _proxy :: Parser.Parser DivideByZero) _ -> Prelude.fail (Prelude.unwords ["unrecognized exception, type:", Prelude.show _type, "field id:", Prelude.show _id]) Thrift.FieldEnd -> Prelude.fail "no response" | Prelude.otherwise -> Prelude.fail "reply function does not match" 3 -> Prelude.fmap (Prelude.Left . Exception.SomeException) (Thrift.parseStruct _proxy :: Parser.Parser Thrift.ApplicationException) 4 -> Prelude.fail "divide: expected reply but got oneway function call" _ -> Prelude.fail "divide: invalid message type" Thrift.parseMsgEnd _proxy Prelude.return _result quotRem :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Prelude.Int -> Prelude.Int -> Thrift.ThriftM p c s QuotRemResponse quotRem __field__dividend __field__divisor = do Thrift.ThriftEnv _proxy _channel _opts _counter <- Reader.ask Trans.lift (quotRemIO _proxy _channel _counter _opts __field__dividend __field__divisor) quotRemIO :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.RpcOptions -> Prelude.Int -> Prelude.Int -> Prelude.IO QuotRemResponse quotRemIO _proxy _channel _counter _opts __field__dividend __field__divisor = do (_handle, _sendCob, _recvCob) <- Thrift.mkCallbacks (recv_quotRem _proxy) send_quotRem _proxy _channel _counter _sendCob _recvCob _opts __field__dividend __field__divisor Thrift.wait _handle send_quotRem :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.SendCallback -> Thrift.RecvCallback -> Thrift.RpcOptions -> Prelude.Int -> Prelude.Int -> Prelude.IO () send_quotRem _proxy _channel _counter _sendCob _recvCob _rpcOpts __field__dividend __field__divisor = do _seqNum <- _counter let _callMsg = LBS.toStrict (ByteString.toLazyByteString (_build_quotRem _proxy _seqNum __field__dividend __field__divisor)) Thrift.sendRequest _channel (Thrift.Request _callMsg (Thrift.setRpcPriority _rpcOpts Thrift.NormalPriority)) _sendCob _recvCob recv_quotRem :: (Thrift.Protocol p) => Proxy.Proxy p -> Thrift.Response -> Prelude.Either Exception.SomeException QuotRemResponse recv_quotRem _proxy (Thrift.Response _response _) = Monad.join (Arrow.left (Exception.SomeException . Thrift.ProtocolException) (Parser.parse (_parse_quotRem _proxy) _response)) _build_quotRem :: Thrift.Protocol p => Proxy.Proxy p -> Int.Int32 -> Prelude.Int -> Prelude.Int -> ByteString.Builder _build_quotRem _proxy _seqNum __field__dividend __field__divisor = Thrift.genMsgBegin _proxy "quotRem" 1 _seqNum <> Thrift.genStruct _proxy (Thrift.genField _proxy "dividend" (Thrift.getI64Type _proxy) 1 0 ((Thrift.genI64 _proxy . Prelude.fromIntegral) __field__dividend) : Thrift.genField _proxy "divisor" (Thrift.getI64Type _proxy) 2 1 ((Thrift.genI64 _proxy . Prelude.fromIntegral) __field__divisor) : []) <> Thrift.genMsgEnd _proxy _parse_quotRem :: Thrift.Protocol p => Proxy.Proxy p -> Parser.Parser (Prelude.Either Exception.SomeException QuotRemResponse) _parse_quotRem _proxy = do Thrift.MsgBegin _name _msgTy _ <- Thrift.parseMsgBegin _proxy _result <- case _msgTy of 1 -> Prelude.fail "quotRem: expected reply but got function call" 2 | _name == "quotRem" -> do let _idMap = HashMap.fromList [("quotRem_success", 0)] _fieldBegin <- Thrift.parseFieldBegin _proxy 0 _idMap case _fieldBegin of Thrift.FieldBegin _type _id _bool -> do case _id of 0 | _type == Thrift.getStructType _proxy -> Prelude.fmap Prelude.Right (Thrift.parseStruct _proxy) _ -> Prelude.fail (Prelude.unwords ["unrecognized exception, type:", Prelude.show _type, "field id:", Prelude.show _id]) Thrift.FieldEnd -> Prelude.fail "no response" | Prelude.otherwise -> Prelude.fail "reply function does not match" 3 -> Prelude.fmap (Prelude.Left . Exception.SomeException) (Thrift.parseStruct _proxy :: Parser.Parser Thrift.ApplicationException) 4 -> Prelude.fail "quotRem: expected reply but got oneway function call" _ -> Prelude.fail "quotRem: invalid message type" Thrift.parseMsgEnd _proxy Prelude.return _result put :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Prelude.Int -> Thrift.ThriftM p c s () put __field__val = do Thrift.ThriftEnv _proxy _channel _opts _counter <- Reader.ask Trans.lift (putIO _proxy _channel _counter _opts __field__val) putIO :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.RpcOptions -> Prelude.Int -> Prelude.IO () putIO _proxy _channel _counter _opts __field__val = do _handle <- Concurrent.newEmptyMVar send_put _proxy _channel _counter (Concurrent.putMVar _handle) _opts __field__val Concurrent.takeMVar _handle >>= Prelude.maybe (Prelude.return ()) Exception.throw send_put :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.SendCallback -> Thrift.RpcOptions -> Prelude.Int -> Prelude.IO () send_put _proxy _channel _counter _sendCob _rpcOpts __field__val = do _seqNum <- _counter let _callMsg = LBS.toStrict (ByteString.toLazyByteString (_build_put _proxy _seqNum __field__val)) Thrift.sendOnewayRequest _channel (Thrift.Request _callMsg (Thrift.setRpcPriority _rpcOpts Thrift.NormalPriority)) _sendCob _build_put :: Thrift.Protocol p => Proxy.Proxy p -> Int.Int32 -> Prelude.Int -> ByteString.Builder _build_put _proxy _seqNum __field__val = Thrift.genMsgBegin _proxy "put" 1 _seqNum <> Thrift.genStruct _proxy (Thrift.genField _proxy "val" (Thrift.getI64Type _proxy) 1 0 ((Thrift.genI64 _proxy . Prelude.fromIntegral) __field__val) : []) <> Thrift.genMsgEnd _proxy putMany :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => [Prelude.Int] -> Thrift.ThriftM p c s () putMany __field__val = do Thrift.ThriftEnv _proxy _channel _opts _counter <- Reader.ask Trans.lift (putManyIO _proxy _channel _counter _opts __field__val) putManyIO :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.RpcOptions -> [Prelude.Int] -> Prelude.IO () putManyIO _proxy _channel _counter _opts __field__val = do _handle <- Concurrent.newEmptyMVar send_putMany _proxy _channel _counter (Concurrent.putMVar _handle) _opts __field__val Concurrent.takeMVar _handle >>= Prelude.maybe (Prelude.return ()) Exception.throw send_putMany :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.SendCallback -> Thrift.RpcOptions -> [Prelude.Int] -> Prelude.IO () send_putMany _proxy _channel _counter _sendCob _rpcOpts __field__val = do _seqNum <- _counter let _callMsg = LBS.toStrict (ByteString.toLazyByteString (_build_putMany _proxy _seqNum __field__val)) Thrift.sendOnewayRequest _channel (Thrift.Request _callMsg (Thrift.setRpcPriority _rpcOpts Thrift.NormalPriority)) _sendCob _build_putMany :: Thrift.Protocol p => Proxy.Proxy p -> Int.Int32 -> [Prelude.Int] -> ByteString.Builder _build_putMany _proxy _seqNum __field__val = Thrift.genMsgBegin _proxy "putMany" 1 _seqNum <> Thrift.genStruct _proxy (Thrift.genField _proxy "val" (Thrift.getListType _proxy) 1 0 (Thrift.genList _proxy (Thrift.getI64Type _proxy) (Thrift.genI64 _proxy . Prelude.fromIntegral) __field__val) : []) <> Thrift.genMsgEnd _proxy get :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Thrift.ThriftM p c s Prelude.Int get = do Thrift.ThriftEnv _proxy _channel _opts _counter <- Reader.ask Trans.lift (getIO _proxy _channel _counter _opts) getIO :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.RpcOptions -> Prelude.IO Prelude.Int getIO _proxy _channel _counter _opts = do (_handle, _sendCob, _recvCob) <- Thrift.mkCallbacks (recv_get _proxy) send_get _proxy _channel _counter _sendCob _recvCob _opts Thrift.wait _handle send_get :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.SendCallback -> Thrift.RecvCallback -> Thrift.RpcOptions -> Prelude.IO () send_get _proxy _channel _counter _sendCob _recvCob _rpcOpts = do _seqNum <- _counter let _callMsg = LBS.toStrict (ByteString.toLazyByteString (_build_get _proxy _seqNum)) Thrift.sendRequest _channel (Thrift.Request _callMsg (Thrift.setRpcPriority _rpcOpts Thrift.NormalPriority)) _sendCob _recvCob recv_get :: (Thrift.Protocol p) => Proxy.Proxy p -> Thrift.Response -> Prelude.Either Exception.SomeException Prelude.Int recv_get _proxy (Thrift.Response _response _) = Monad.join (Arrow.left (Exception.SomeException . Thrift.ProtocolException) (Parser.parse (_parse_get _proxy) _response)) _build_get :: Thrift.Protocol p => Proxy.Proxy p -> Int.Int32 -> ByteString.Builder _build_get _proxy _seqNum = Thrift.genMsgBegin _proxy "get" 1 _seqNum <> Thrift.genStruct _proxy [] <> Thrift.genMsgEnd _proxy _parse_get :: Thrift.Protocol p => Proxy.Proxy p -> Parser.Parser (Prelude.Either Exception.SomeException Prelude.Int) _parse_get _proxy = do Thrift.MsgBegin _name _msgTy _ <- Thrift.parseMsgBegin _proxy _result <- case _msgTy of 1 -> Prelude.fail "get: expected reply but got function call" 2 | _name == "get" -> do let _idMap = HashMap.fromList [("get_success", 0)] _fieldBegin <- Thrift.parseFieldBegin _proxy 0 _idMap case _fieldBegin of Thrift.FieldBegin _type _id _bool -> do case _id of 0 | _type == Thrift.getI64Type _proxy -> Prelude.fmap Prelude.Right (Prelude.fromIntegral <$> Thrift.parseI64 _proxy) _ -> Prelude.fail (Prelude.unwords ["unrecognized exception, type:", Prelude.show _type, "field id:", Prelude.show _id]) Thrift.FieldEnd -> Prelude.fail "no response" | Prelude.otherwise -> Prelude.fail "reply function does not match" 3 -> Prelude.fmap (Prelude.Left . Exception.SomeException) (Thrift.parseStruct _proxy :: Parser.Parser Thrift.ApplicationException) 4 -> Prelude.fail "get: expected reply but got oneway function call" _ -> Prelude.fail "get: invalid message type" Thrift.parseMsgEnd _proxy Prelude.return _result unimplemented :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Thrift.ThriftM p c s () unimplemented = do Thrift.ThriftEnv _proxy _channel _opts _counter <- Reader.ask Trans.lift (unimplementedIO _proxy _channel _counter _opts) unimplementedIO :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.RpcOptions -> Prelude.IO () unimplementedIO _proxy _channel _counter _opts = do (_handle, _sendCob, _recvCob) <- Thrift.mkCallbacks (recv_unimplemented _proxy) send_unimplemented _proxy _channel _counter _sendCob _recvCob _opts Thrift.wait _handle send_unimplemented :: (Thrift.Protocol p, Thrift.ClientChannel c, (Thrift.<:) s Calculator) => Proxy.Proxy p -> c s -> Thrift.Counter -> Thrift.SendCallback -> Thrift.RecvCallback -> Thrift.RpcOptions -> Prelude.IO () send_unimplemented _proxy _channel _counter _sendCob _recvCob _rpcOpts = do _seqNum <- _counter let _callMsg = LBS.toStrict (ByteString.toLazyByteString (_build_unimplemented _proxy _seqNum)) Thrift.sendRequest _channel (Thrift.Request _callMsg (Thrift.setRpcPriority _rpcOpts Thrift.NormalPriority)) _sendCob _recvCob recv_unimplemented :: (Thrift.Protocol p) => Proxy.Proxy p -> Thrift.Response -> Prelude.Either Exception.SomeException () recv_unimplemented _proxy (Thrift.Response _response _) = Monad.join (Arrow.left (Exception.SomeException . Thrift.ProtocolException) (Parser.parse (_parse_unimplemented _proxy) _response)) _build_unimplemented :: Thrift.Protocol p => Proxy.Proxy p -> Int.Int32 -> ByteString.Builder _build_unimplemented _proxy _seqNum = Thrift.genMsgBegin _proxy "unimplemented" 1 _seqNum <> Thrift.genStruct _proxy [] <> Thrift.genMsgEnd _proxy _parse_unimplemented :: Thrift.Protocol p => Proxy.Proxy p -> Parser.Parser (Prelude.Either Exception.SomeException ()) _parse_unimplemented _proxy = do Thrift.MsgBegin _name _msgTy _ <- Thrift.parseMsgBegin _proxy _result <- case _msgTy of 1 -> Prelude.fail "unimplemented: expected reply but got function call" 2 | _name == "unimplemented" -> do let _idMap = HashMap.fromList [] _fieldBegin <- Thrift.parseFieldBegin _proxy 0 _idMap case _fieldBegin of Thrift.FieldBegin _type _id _bool -> do case _id of _ -> Prelude.fail (Prelude.unwords ["unrecognized exception, type:", Prelude.show _type, "field id:", Prelude.show _id]) Thrift.FieldEnd -> Prelude.return (Prelude.Right ()) | Prelude.otherwise -> Prelude.fail "reply function does not match" 3 -> Prelude.fmap (Prelude.Left . Exception.SomeException) (Thrift.parseStruct _proxy :: Parser.Parser Thrift.ApplicationException) 4 -> Prelude.fail "unimplemented: expected reply but got oneway function call" _ -> Prelude.fail "unimplemented: invalid message type" Thrift.parseMsgEnd _proxy Prelude.return _result