From 24df9a12a9240aaed8741d60e4b0b9cbf59a9fd9 Mon Sep 17 00:00:00 2001 From: joe Date: Mon, 5 Jun 2017 03:21:25 -0400 Subject: WIP: Adapting DHT to Tox network (part 2). --- src/Network/DHT/Mainline.hs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/Network/DHT/Mainline.hs (limited to 'src/Network/DHT/Mainline.hs') diff --git a/src/Network/DHT/Mainline.hs b/src/Network/DHT/Mainline.hs new file mode 100644 index 00000000..7cd33c0d --- /dev/null +++ b/src/Network/DHT/Mainline.hs @@ -0,0 +1,22 @@ +{-# LANGUAGE LambdaCase #-} +module Network.DHT.Mainline where + +import Network.RPC +import Network.KRPC.Message +import Data.BEncode as BE +import qualified Data.ByteString.Lazy as L + +mainline :: Messaging KMessageOf TransactionId BValue +mainline = Messaging + { messageClass = \case Q _ -> Query + R _ -> Response + E _ -> Error + , messageTransaction = \case Q q -> queryId q + R r -> respId r + E e -> errorId e + , messagePayload = \case Q q -> queryArgs q + R r -> respVals r + E e -> error "TODO: messagePayload for KError" + , encodePayload = fmap (L.toStrict . BE.encode) + , decodePayload = sequence . fmap BE.decode + } -- cgit v1.2.3