| -- |
| -- 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 Main where |
| |
| |
| import qualified Control.Exception |
| import qualified Network |
| |
| import Thrift.Protocol.Binary |
| import Thrift.Server |
| import Thrift.Transport.Handle |
| |
| import qualified ThriftTestUtils |
| |
| import qualified Yowza |
| import qualified Yowza_Client as Client |
| import qualified Yowza_Iface as Iface |
| |
| |
| data YowzaHandler = YowzaHandler |
| instance Iface.Yowza_Iface YowzaHandler where |
| blingity _ = do |
| ThriftTestUtils.serverLog "SERVER: Got blingity" |
| return () |
| |
| blangity _ = do |
| ThriftTestUtils.serverLog "SERVER: Got blangity" |
| return $ 31 |
| |
| |
| client :: (String, Network.PortID) -> IO () |
| client addr = do |
| to <- hOpen addr |
| let ps = (BinaryProtocol to, BinaryProtocol to) |
| |
| Client.blingity ps |
| |
| rv <- Client.blangity ps |
| ThriftTestUtils.clientLog $ show rv |
| |
| tClose to |
| |
| server :: Network.PortNumber -> IO () |
| server port = do |
| ThriftTestUtils.serverLog "Ready..." |
| (runBasicServer YowzaHandler Yowza.process port) |
| `Control.Exception.catch` |
| (\(TransportExn s _) -> error $ "FAILURE: " ++ show s) |
| |
| main :: IO () |
| main = ThriftTestUtils.runTest server client |