Subversion Repositories SmartDukaan

Rev

Rev 30 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
30 ashish 1
--
2
-- Licensed to the Apache Software Foundation (ASF) under one
3
-- or more contributor license agreements. See the NOTICE file
4
-- distributed with this work for additional information
5
-- regarding copyright ownership. The ASF licenses this file
6
-- to you under the Apache License, Version 2.0 (the
7
-- "License"); you may not use this file except in compliance
8
-- with the License. You may obtain a copy of the License at
9
--
10
--   http://www.apache.org/licenses/LICENSE-2.0
11
--
12
-- Unless required by applicable law or agreed to in writing,
13
-- software distributed under the License is distributed on an
14
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
-- KIND, either express or implied. See the License for the
16
-- specific language governing permissions and limitations
17
-- under the License.
18
--
19
 
20
module Client where
21
 
22
import ThriftTest_Client
23
import ThriftTest_Types
24
import qualified Data.Map as Map
25
import qualified Data.Set as Set
26
import Control.Monad
27
import Control.Exception as CE
28
 
29
import Network
30
 
31
import Thrift
32
import Thrift.Transport.Handle
33
import Thrift.Protocol.Binary
34
 
35
 
36
serverAddress = ("127.0.0.1", PortNumber 9090)
37
 
38
main = do to <- hOpen serverAddress
39
          let p =  BinaryProtocol to
40
          let ps = (p,p)
41
          print =<< testString ps "bya"
42
          print =<< testByte ps 8
43
          print =<< testByte ps (-8)
44
          print =<< testI32 ps 32
45
          print =<< testI32 ps (-32)
46
          print =<< testI64 ps 64
47
          print =<< testI64 ps (-64)
48
          print =<< testDouble ps 3.14
49
          print =<< testDouble ps (-3.14)
50
          print =<< testMap ps (Map.fromList [(1,1),(2,2),(3,3)])
51
          print =<< testList ps [1,2,3,4,5]
52
          print =<< testSet ps (Set.fromList [1,2,3,4,5])
53
          print =<< testStruct ps (Xtruct (Just "hi") (Just 4) (Just 5) Nothing)
54
          CE.catch (testException ps "e" >> print "bad") (\e -> print (e :: Xception))
55
          CE.catch (testMultiException ps "e" "e2" >> print "ok") (\e -> print (e :: Xception))
56
          CE.catch (CE.catch (testMultiException ps "e" "e2">> print "bad") (\e -> print (e :: Xception2))) (\(e :: SomeException) -> print "ok")
57
          tClose to
58