encode :: MTaskMSGSend -> String
encode (MTTask to data) = "t" +++ to16bit to +++ to16bit (size data) +++ data +++ "\n"
+encode (MTTaskDel i) = "d" +++ to16bit i +++ "\n"
encode (MTSds i v) = "s" +++ to16bit i +++ v +++ "\n"
encode (MTUpd i v) = "u" +++ to16bit i +++ v +++ "\n"
+++ " value " +++ safePrint v
toString (MTTask to data) = "Task timeout: " +++ toString to
+++ " data " +++ safePrint data
+ toString (MTTaskDel i) = "Task delete request: " +++ toString i
toString (MTUpd i v) = "Update id: " +++ toString i
+++ " value " +++ safePrint v
zero = {freshl=[1..], freshs=[1..], sdss=[]}
-toRealByteCode :: (ByteCode a b) -> (String, BCState)
-toRealByteCode x
-# (bc, st) = runBC x zero
+toRealByteCode :: (ByteCode a b) BCState -> (String, BCState)
+toRealByteCode x s
+# (bc, st) = runBC x s
# (bc, gtmap) = computeGotos bc 1
= (concat $ map (toString o toByteVal) (map (implGotos gtmap) bc), st)
toSDSUpdate :: Int Int -> [MTaskMSGSend]
toSDSUpdate i v = [MTUpd i (to16bit v)]
-Start = toMessages 500 $ toRealByteCode (unMain bc)
+Start = toMessages 500 $ toRealByteCode (unMain bc) zero
where
bc = sds \x=5 In
sds \y=4 In