{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# 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 Compiler (0.10.0) -- -- -- -- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING -- ----------------------------------------------------------------- module Data.Concrete.Autogen.FetchCommunicationService_Client(fetch,getCommunicationIDs,getCommunicationCount) where import Data.Concrete.Autogen.Service_Client as Service_Client import qualified Data.IORef as R import Prelude (($), (.), (>>=), (==), (++)) import qualified Prelude as P import qualified Control.Exception as X import qualified Control.Monad as M ( liftM, ap, when ) import Data.Functor ( (<$>) ) import qualified Data.ByteString.Lazy as LBS import qualified Data.Hashable as H import qualified Data.Int as I import qualified Data.Maybe as M (catMaybes) import qualified Data.Text.Lazy.Encoding as E ( decodeUtf8, encodeUtf8 ) import qualified Data.Text.Lazy as LT import qualified GHC.Generics as G (Generic) import qualified Data.Typeable as TY ( Typeable ) import qualified Data.HashMap.Strict as Map import qualified Data.HashSet as Set import qualified Data.Vector as Vector import qualified Test.QuickCheck.Arbitrary as QC ( Arbitrary(..) ) import qualified Test.QuickCheck as QC ( elements ) import qualified Thrift as T import qualified Thrift.Types as T import qualified Thrift.Arbitraries as T import Data.Concrete.Autogen.Communication_Types as Communication_Types import Data.Concrete.Autogen.Services_Types as Services_Types import Data.Concrete.Autogen.Access_Types as Access_Types import Data.Concrete.Autogen.FetchCommunicationService seqid = R.newIORef 0 fetch (ip,op) arg_request = do send_fetch op arg_request recv_fetch ip send_fetch op arg_request = do seq <- seqid seqn <- R.readIORef seq T.writeMessageBegin op ("fetch", T.M_CALL, seqn) write_Fetch_args op (Fetch_args{fetch_args_request=arg_request}) T.writeMessageEnd op T.tFlush (T.getTransport op) recv_fetch ip = do (fname, mtype, rseqid) <- T.readMessageBegin ip M.when (mtype == T.M_EXCEPTION) $ do { exn <- T.readAppExn ip ; T.readMessageEnd ip ; X.throw exn } res <- read_Fetch_result ip T.readMessageEnd ip P.maybe (P.return ()) X.throw (fetch_result_ex res) P.return $ fetch_result_success res getCommunicationIDs (ip,op) arg_offset arg_count = do send_getCommunicationIDs op arg_offset arg_count recv_getCommunicationIDs ip send_getCommunicationIDs op arg_offset arg_count = do seq <- seqid seqn <- R.readIORef seq T.writeMessageBegin op ("getCommunicationIDs", T.M_CALL, seqn) write_GetCommunicationIDs_args op (GetCommunicationIDs_args{getCommunicationIDs_args_offset=arg_offset,getCommunicationIDs_args_count=arg_count}) T.writeMessageEnd op T.tFlush (T.getTransport op) recv_getCommunicationIDs ip = do (fname, mtype, rseqid) <- T.readMessageBegin ip M.when (mtype == T.M_EXCEPTION) $ do { exn <- T.readAppExn ip ; T.readMessageEnd ip ; X.throw exn } res <- read_GetCommunicationIDs_result ip T.readMessageEnd ip P.maybe (P.return ()) X.throw (getCommunicationIDs_result_ex res) P.return $ getCommunicationIDs_result_success res getCommunicationCount (ip,op) = do send_getCommunicationCount op recv_getCommunicationCount ip send_getCommunicationCount op = do seq <- seqid seqn <- R.readIORef seq T.writeMessageBegin op ("getCommunicationCount", T.M_CALL, seqn) write_GetCommunicationCount_args op (GetCommunicationCount_args{}) T.writeMessageEnd op T.tFlush (T.getTransport op) recv_getCommunicationCount ip = do (fname, mtype, rseqid) <- T.readMessageBegin ip M.when (mtype == T.M_EXCEPTION) $ do { exn <- T.readAppExn ip ; T.readMessageEnd ip ; X.throw exn } res <- read_GetCommunicationCount_result ip T.readMessageEnd ip P.maybe (P.return ()) X.throw (getCommunicationCount_result_ex res) P.return $ getCommunicationCount_result_success res