Safe Haskell | None |
---|---|
Language | Haskell2010 |
A module for removing and creating sequence numbers and time stamps for
Stream
s.
It's sometimes helpful to explicity use a SyncStream
instead of a Stream
.
For example, for a library function that consumes Frame
s and doesn't regard
the sequence numbers and time stamps, such that the function does not handle
any gaps and/or out of order packages or discrepancies in the time stamps
and frame durations.
When the library author chooses SyncStream
, the library users then know,
that the library function relies on a synchronized stream.
- type SyncStream i p c = Stream i () () p c
- assumeSynchronized :: Stream i s t p c -> SyncStream i p c
- setSequenceNumberAndTimestamp :: (Num s, CanBeTicks r t, HasDuration c) => SyncStream i p c -> (s, Ticks r t) -> (Stream i s (Ticks r t) p c, (s, Ticks r t))
Documentation
type SyncStream i p c = Stream i () () p c Source #
A Stream
without sequence numbers and time stamps is called a
SyncStream
, which is the abbreviation of synchronous stream, because
when the sequence numbers and time stamps of a Stream
, and by extension of
a Frame
and FrameCtx
, are always ()
, the Frame
s of a Stream
can
be assumed to be (perfectly) synchronous.
assumeSynchronized :: Stream i s t p c -> SyncStream i p c Source #
Convert a Stream
to a SyncStream
by simply forgetting the sequence
numbers and timestamps of the input. This expresses the assumption that the
Frame
s are either perfectly lined sequential or that this doesn't matter
at all.
setSequenceNumberAndTimestamp :: (Num s, CanBeTicks r t, HasDuration c) => SyncStream i p c -> (s, Ticks r t) -> (Stream i s (Ticks r t) p c, (s, Ticks r t)) Source #