equal
deleted
inserted
replaced
2733 {-# OPTIONS_GHC -fno-warn-incomplete-patterns #-} |
2733 {-# OPTIONS_GHC -fno-warn-incomplete-patterns #-} |
2734 |
2734 |
2735 module Isabelle.Byte_Message ( |
2735 module Isabelle.Byte_Message ( |
2736 write, write_line, |
2736 write, write_line, |
2737 read, read_block, read_line, |
2737 read, read_block, read_line, |
2738 make_message, write_message, read_message, |
2738 make_message, write_message, read_message, exchange_message, |
2739 make_line_message, write_line_message, read_line_message, |
2739 make_line_message, write_line_message, read_line_message, |
2740 read_yxml, write_yxml |
2740 read_yxml, write_yxml |
2741 ) |
2741 ) |
2742 where |
2742 where |
2743 |
2743 |
2835 read_message socket = do |
2835 read_message socket = do |
2836 res <- read_line socket |
2836 res <- read_line socket |
2837 case res of |
2837 case res of |
2838 Just line -> Just <$> mapM (read_chunk socket) (parse_header line) |
2838 Just line -> Just <$> mapM (read_chunk socket) (parse_header line) |
2839 Nothing -> return Nothing |
2839 Nothing -> return Nothing |
|
2840 |
|
2841 exchange_message :: Socket -> [Bytes] -> IO (Maybe [Bytes]) |
|
2842 exchange_message socket msg = do |
|
2843 write_message socket msg |
|
2844 read_message socket |
2840 |
2845 |
2841 |
2846 |
2842 -- hybrid messages: line or length+block (with content restriction) |
2847 -- hybrid messages: line or length+block (with content restriction) |
2843 |
2848 |
2844 is_length :: Bytes -> Bool |
2849 is_length :: Bytes -> Bool |