X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=mTaskInterpret.icl;h=c63c95dbf36b85c79dd2adc1a69b5cd50603ced0;hb=184c730e7c9ab350be853218f5e1f9b8866531ce;hp=1833e6201e5f5472c8a8c05d5671a33846aaba77;hpb=f90517d738696125a067f113edf93f404873115b;p=mTask.git diff --git a/mTaskInterpret.icl b/mTaskInterpret.icl index 1833e62..c63c95d 100644 --- a/mTaskInterpret.icl +++ b/mTaskInterpret.icl @@ -23,19 +23,22 @@ import qualified Data.Map as DM import Text.Encodings.Base64 encode :: MTaskMSGSend -> String -encode (MTSds i v) = "s" +++ to16bit i +++ v +++ "\n" encode (MTTask to data) = "t" +++ to16bit to +++ to16bit (size data) +++ data +++ "\n" +encode (MTSds i v) = "s" +++ to16bit i +++ v +++ "\n" encode (MTUpd i v) = "u" +++ to16bit i +++ v +++ "\n" decode :: String -> MTaskMSGRecv decode x | size x == 0 = MTEmpty = case x.[0] of + 't' = MTTaskAck (from16bit (x % (1,3))) + 'd' = MTTaskDelAck (from16bit (x % (1,3))) + 'm' = MTMessage x + 's' = MTSDSAck (from16bit (x % (1,3))) + 'a' = MTSDSDelAck (from16bit (x % (1,3))) + 'p' = MTPub (from16bit (x % (1,3))) (x % (3,5)) '\0' = MTEmpty '\n' = MTEmpty - 'm' = MTMessage x - 't' = MTTaskAdded (from16bit (x % (1,3))) - 'u' = MTPub (from16bit (x % (1,3))) (x % (3,5)) _ = MTMessage x//abort ("Didn't understand message: " +++ join " " [toString (toInt c)\\c<-: x] +++ "\n") safePrint :== toString o toJSON @@ -49,9 +52,13 @@ instance toString MTaskMSGSend where +++ " value " +++ safePrint v instance toString MTaskMSGRecv where + toString (MTTaskAck i) = "Task added with id: " +++ toString i + toString (MTTaskDelAck i) = "Task deleted with id: " +++ toString i + toString (MTSDSAck i) = "SDS added with id: " +++ toString i + toString (MTSDSDelAck i) = "SDS deleted with id: " +++ toString i toString (MTPub i v) = "Publish id: " +++ toString i +++ " value " +++ safePrint v - toString (MTTaskAdded i) = "Task added with id: " +++ toString i + toString (MTMessage m) = m toString MTEmpty = "Empty message" bclength :: BC -> Int