@@ -11,11 +11,7 @@ module EventStream (
12import Blaze.ByteString.Builder
12import Blaze.ByteString.Builder
13import Blaze.ByteString.Builder.Char8
13import Blaze.ByteString.Builder.Char8
14−import Control.Monad.Trans
15−import Control.Concurrent
16import Data.Monoid
14import Data.Monoid
17−import Data.Enumerator hiding (map)
18−import Data.Enumerator.List (generateM)
21 Type representing a communication over an event stream. This can be an
17 Type representing a communication over an event stream. This can be an
@@ -40,12 +36,14 @@ data ServerEvent
41 Newline as a Builder.
37 Newline as a Builder.
43nl = fromChar '\n'
40nl = fromChar '\n'
47 Field names as Builder
44 Field names as Builder
46+nameField, idField, dataField, retryField, commentField :: Builder
49nameField = fromString "event:"
47nameField = fromString "event:"
50idField = fromString "id:"
48idField = fromString "id:"
51dataField = fromString "data:"
49dataField = fromString "data:"
@@ -56,12 +54,14 @@ commentField = fromChar ':'
57 Wraps the text as a labeled field of an event stream.
55 Wraps the text as a labeled field of an event stream.
57+field :: Builder -> Builder -> Builder
59field l b = l `mappend` b `mappend` nl
58field l b = l `mappend` b `mappend` nl
63 Appends a buffer flush to the end of a Builder.
62 Appends a buffer flush to the end of a Builder.
64+flushAfter :: Builder -> Builder
65flushAfter b = b `mappend` flush
65flushAfter b = b `mappend` flush
@@ -77,6 +77,6 @@ eventToBuilder (ServerEvent n i d)= Just $ flushAfter $
77 (name n $ evid i $ mconcat (map (field dataField) d)) `mappend` nl
77 (name n $ evid i $ mconcat (map (field dataField) d)) `mappend` nl
79 name Nothing = id
79 name Nothing = id
80− name (Just n) = mappend (field nameField n)
80+ name (Just n') = mappend (field nameField n')
81 evid Nothing = id
81 evid Nothing = id
82− evid (Just i) = mappend (field idField i)
82+ evid (Just i') = mappend (field idField i')