Skip to content

Instantly share code, notes, and snippets.

@hiredman
Created November 28, 2020 19:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hiredman/235655ccde8689499576db882095959f to your computer and use it in GitHub Desktop.
Save hiredman/235655ccde8689499576db882095959f to your computer and use it in GitHub Desktop.
(defn header-encoder% [client-channel]
(let-cont%
[header-encode-service (return% (cml/channel))
_ (fork%
(let-cont%
[ten (label%)
frame (sync% (cml/rx header-encode-service))
_ (if (cml/event? frame)
(let-cont%
[eleven (label%)
header-frame (sync% frame)]
(if frame
(let-cont%
[;; TODO: header encoding goes here
_ (log% "output header frame" header-frame)
_ (write-frame-header% client-channel header-frame)
_ (log% "header frame header written")
_ (write-until-full% client-channel (:payload header-frame))
_ (log% "header frame written")]
(goto% eleven))
(goto% ten)))
(let-cont%
[_ (log% "output frame" frame)
_ (write-frame-header% client-channel frame)
_ (log% "frame header written")
_ (write-until-full% client-channel (:payload frame))
_ (log% "frame written")]
(goto% ten)))]
(return% nil)))]
(return% header-encode-service)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment