mirror of
https://github.com/valitydev/thrift.git
synced 2024-11-07 02:45:22 +00:00
69 lines
1.9 KiB
Haskell
69 lines
1.9 KiB
Haskell
|
--
|
||
|
-- 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
|