|  | -- | 
|  | -- Licensed to the Apache Software Foundation (ASF) under one | 
|  | -- or more contributor license agreements. See the NOTICE file | 
|  | -- distributed with this work for additional information | 
|  | -- regarding copyright ownership. The ASF licenses this file | 
|  | -- to you under the Apache License, Version 2.0 (the | 
|  | -- "License"); you may not use this file except in compliance | 
|  | -- with the License. You may obtain a copy of the License at | 
|  | -- | 
|  | --   http://www.apache.org/licenses/LICENSE-2.0 | 
|  | -- | 
|  | -- Unless required by applicable law or agreed to in writing, | 
|  | -- software distributed under the License is distributed on an | 
|  | -- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
|  | -- KIND, either express or implied. See the License for the | 
|  | -- specific language governing permissions and limitations | 
|  | -- under the License. | 
|  | -- | 
|  |  | 
|  | module Server where | 
|  |  | 
|  | import ThriftTest | 
|  | import ThriftTest_Iface | 
|  | import Data.Map as Map | 
|  | import Control.Exception | 
|  | import ThriftTest_Types | 
|  |  | 
|  | import Thrift | 
|  | import Thrift.Server | 
|  |  | 
|  |  | 
|  | data TestHandler = TestHandler | 
|  | instance ThriftTest_Iface TestHandler where | 
|  | testVoid a = return () | 
|  | testString a (Just s) = do print s; return s | 
|  | testByte a (Just x) = do print x; return x | 
|  | testI32 a (Just x) = do print x; return x | 
|  | testI64 a (Just x) = do print x; return x | 
|  | testDouble a (Just x) = do print x; return x | 
|  | testStruct a (Just x) = do print x; return x | 
|  | testNest a (Just x) = do print x; return x | 
|  | testMap a (Just x) = do print x; return x | 
|  | testSet a (Just x) = do print x; return x | 
|  | testList a (Just x) = do print x; return x | 
|  | testEnum a (Just x) = do print x; return x | 
|  | testTypedef a (Just x) = do print x; return x | 
|  | testMapMap a (Just x) = return (Map.fromList [(1,Map.fromList [(2,2)])]) | 
|  | testInsanity a (Just x) = return (Map.fromList [(1,Map.fromList [(ONE,x)])]) | 
|  | testMulti a a1 a2 a3 a4 a5 a6 = return (Xtruct Nothing Nothing Nothing Nothing) | 
|  | testException a c = throw (Xception (Just 1) (Just "bya")) | 
|  | testMultiException a c1 c2 = throw (Xception (Just 1) (Just "xyz")) | 
|  | testOneway a (Just i) = do print i | 
|  |  | 
|  |  | 
|  | main = do (runBasicServer TestHandler process 9090) | 
|  | `Control.Exception.catch` | 
|  | (\(TransportExn s t) -> print s) |