Portability | unknown |
---|---|
Stability | unstable |
Maintainer | Conrad Parker <conrad@metadecks.org> |
Safe Haskell | Safe-Infered |
Iteratee reading of ZoomCache files.
A typical usage, using the iteratee iter
to process the level 3 summaries
from the track called "rainfall":
I.fileDriverRandom (enumCacheFile standardIdentifiers . I.joinI . filterTracksByName ["rainfall"] . I.joinI . enumSummaryLevel 3 $ iter) filename
Similarly, using the iteratee rawIter
to process the raw data from the
track called "rainfall":
I.fileDriverRandom (enumCacheFile standardIdentifiers . I.joinI . filterTracksByName ["rainfall"] . I.joinI . enumPackets $ rawIter) filename
- data Block = Block {}
- data BlockData
- enumCacheFile :: (Functor m, MonadIO m) => [IdentifyCodec] -> Enumeratee (Offset ByteString) [Offset Block] m a
- wholeTrackSummary :: (Functor m, MonadIO m) => TrackNo -> Iteratee [Offset Block] m (TrackSpec, ZoomSummary)
- wholeTrackSummaryUTC :: (Functor m, MonadIO m) => TrackNo -> Iteratee [Offset Block] m (TrackSpec, Maybe ZoomSummaryUTC)
- iterHeaders :: (Functor m, Monad m) => [IdentifyCodec] -> Iteratee (Offset ByteString) m CacheFile
- enumBlock :: (Functor m, MonadIO m) => CacheFile -> Enumeratee (Offset ByteString) [Offset Block] m a
- enumBlockIncomplete :: (Functor m, MonadIO m) => CacheFile -> Enumeratee (Offset ByteString) [Offset Block] m a
- enumBlockTrackNo :: (Functor m, MonadIO m) => CacheFile -> TrackNo -> Enumeratee (Offset ByteString) [Offset Block] m a
- seekTimeStamp :: (ListLike s el, Nullable s, NullPoint s, Timestampable el, Monad m) => CacheFile -> Maybe TimeStamp -> Iteratee s m ()
- seekUTCTime :: (ListLike s el, Nullable s, NullPoint s, UTCTimestampable el, Monad m) => Maybe UTCTime -> Iteratee s m ()
- enumPackets :: (Functor m, Monad m) => Enumeratee [Offset Block] [Packet] m a
- enumPacketsUTC :: (Functor m, Monad m) => Enumeratee [Offset Block] [PacketUTC] m a
- enumSummaryLevel :: (Functor m, Monad m) => Int -> Enumeratee [Offset Block] [ZoomSummary] m a
- enumSummaries :: (Functor m, Monad m) => Enumeratee [Offset Block] [ZoomSummary] m a
- enumSummaryUTCLevel :: (Functor m, Monad m) => Int -> Enumeratee [Offset Block] [ZoomSummaryUTC] m a
- enumSummariesUTC :: (Functor m, Monad m) => Enumeratee [Offset Block] [ZoomSummaryUTC] m a
- filterTracksByName :: (Functor m, Monad m) => CacheFile -> [ByteString] -> Enumeratee [Offset Block] [Offset Block] m a
- filterTracks :: (Functor m, Monad m) => [TrackNo] -> Enumeratee [Offset Block] [Offset Block] m a
- enumPacketSOs :: (Functor m, Monad m) => Enumeratee [Offset Block] [PacketSO] m a
- enumSummarySOLevel :: (Functor m, Monad m) => Int -> Enumeratee [Offset Block] [ZoomSummarySO] m a
- enumSummarySOs :: (Functor m, Monad m) => Enumeratee [Offset Block] [ZoomSummarySO] m a
- enumCTPSO :: (Functor m, Monad m) => Enumeratee [Offset Block] [(CacheFile, TrackNo, PacketSO)] m a
- enumCTSO :: (Functor m, Monad m) => Enumeratee [Offset Block] [(CacheFile, TrackNo, ZoomSummarySO)] m a
Types
Reading zoom-cache files and ByteStrings
enumCacheFile :: (Functor m, MonadIO m) => [IdentifyCodec] -> Enumeratee (Offset ByteString) [Offset Block] m aSource
wholeTrackSummary :: (Functor m, MonadIO m) => TrackNo -> Iteratee [Offset Block] m (TrackSpec, ZoomSummary)Source
Read the summary of an entire track.
wholeTrackSummaryUTC :: (Functor m, MonadIO m) => TrackNo -> Iteratee [Offset Block] m (TrackSpec, Maybe ZoomSummaryUTC)Source
Read the summary of an entire track.
iterHeaders :: (Functor m, Monad m) => [IdentifyCodec] -> Iteratee (Offset ByteString) m CacheFileSource
Parse only the global and track headers of a zoom-cache file, returning
a CacheFile
enumBlock :: (Functor m, MonadIO m) => CacheFile -> Enumeratee (Offset ByteString) [Offset Block] m aSource
An iteratee of zoom-cache data, after global and track headers
have been read, or if the CacheFile
has been acquired elsewhere.
enumBlockIncomplete :: (Functor m, MonadIO m) => CacheFile -> Enumeratee (Offset ByteString) [Offset Block] m aSource
A version of enumBlock which won't fail with an EofException if the last bit is incomplete (perhaps still being written to).
enumBlockTrackNo :: (Functor m, MonadIO m) => CacheFile -> TrackNo -> Enumeratee (Offset ByteString) [Offset Block] m aSource
An enumeratee of zoom-cache data, after global and track headers
have been read, or if the CacheFile
has been acquired elsewhere.
This version skips parsing of all tracks other than the specified TrackNo
.
This function should only be used in applications where only one track is
used from a file; if you need to process multiple tracks independently then
give each an iteratee filtered by filterTracks or filterTracksByName, and
run these in parallel on the output of enumCacheFile
or enumBlock
.
Using this function multiple times in parallel will duplicate some parsing.
Seeking
seekTimeStamp :: (ListLike s el, Nullable s, NullPoint s, Timestampable el, Monad m) => CacheFile -> Maybe TimeStamp -> Iteratee s m ()Source
seekUTCTime :: (ListLike s el, Nullable s, NullPoint s, UTCTimestampable el, Monad m) => Maybe UTCTime -> Iteratee s m ()Source
Stream enumeratees
enumPackets :: (Functor m, Monad m) => Enumeratee [Offset Block] [Packet] m aSource
Filter just the raw data
enumPacketsUTC :: (Functor m, Monad m) => Enumeratee [Offset Block] [PacketUTC] m aSource
Filter just the raw data, timestamped by UTC
enumSummaryLevel :: (Functor m, Monad m) => Int -> Enumeratee [Offset Block] [ZoomSummary] m aSource
Filter summaries at a particular summary level
enumSummaries :: (Functor m, Monad m) => Enumeratee [Offset Block] [ZoomSummary] m aSource
Filter summaries at all levels
enumSummaryUTCLevel :: (Functor m, Monad m) => Int -> Enumeratee [Offset Block] [ZoomSummaryUTC] m aSource
Filter summaries at a particular summary level
enumSummariesUTC :: (Functor m, Monad m) => Enumeratee [Offset Block] [ZoomSummaryUTC] m aSource
Filter summaries at all levels
filterTracksByName :: (Functor m, Monad m) => CacheFile -> [ByteString] -> Enumeratee [Offset Block] [Offset Block] m aSource
Filter to a given list of track names
filterTracks :: (Functor m, Monad m) => [TrackNo] -> Enumeratee [Offset Block] [Offset Block] m aSource
Filter to a given list of track numbers
Low-level access to SampleOffsets
enumPacketSOs :: (Functor m, Monad m) => Enumeratee [Offset Block] [PacketSO] m aSource
Filter just the raw data
enumSummarySOLevel :: (Functor m, Monad m) => Int -> Enumeratee [Offset Block] [ZoomSummarySO] m aSource
Filter summaries at a particular summary level
enumSummarySOs :: (Functor m, Monad m) => Enumeratee [Offset Block] [ZoomSummarySO] m aSource
Filter summaries at all levels
enumCTPSO :: (Functor m, Monad m) => Enumeratee [Offset Block] [(CacheFile, TrackNo, PacketSO)] m aSource
Filter raw data
enumCTSO :: (Functor m, Monad m) => Enumeratee [Offset Block] [(CacheFile, TrackNo, ZoomSummarySO)] m aSource
Filter summaries