| -- | 
 | -- 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 |