mediabus-0.3.2.1: Multimedia streaming on top of Conduit

Safe HaskellNone
LanguageHaskell2010

Data.MediaBus.Basics.Clock

Description

An interface for clocks. Since there are many ways to calculate different ideas of time, e.g. system time, wall clock time or stream time, a type class Clock is provided with the basic interface for getting the current time and comparing time stamps.

Synopsis

Documentation

class (Default (ClockTimeDiff c), Ord (ClockTimeDiff c), Eq (ClockTimeDiff c), Num (ClockTimeDiff c), Show (ClockTime c), Eq (ClockTime c), Show (ClockTimeDiff c), LocalOrd (ClockTimeDiff c)) => IsClock c where Source #

Clocks can generate reference times, and they can convert these to tickss. Tickss are mere integrals

Minimal complete definition

now, timeAsTimeDiff, diffTime, timeAddTimeDiff

Associated Types

data ClockTime c Source #

data ClockTimeDiff c Source #

type MonadClock c (m :: Type -> Type) :: Constraint Source #

Methods

now :: MonadClock c m => m (ClockTime c) Source #

Return the current absolute time as a ClockTime

timeAsTimeDiff :: ClockTime c -> ClockTimeDiff c Source #

Convert a ClockTime to a ClockTimeDiff by diffTimeing the time with the beginning of time.

diffTime :: ClockTime c -> ClockTime c -> ClockTimeDiff c Source #

The time difference (a ClockTimeDiff) between two ClockTimes

timeAddTimeDiff :: ClockTime c -> ClockTimeDiff c -> ClockTime c Source #

Add the relative time to an absolute time to obtain a new absolute time.

timeSince :: (IsClock c, MonadClock c m, Monad m) => ClockTime c -> m (ClockTimeDiff c) Source #

Return the time elapsed between since the given absolute time.

data UtcClock Source #

A UTC System Time Clock

Constructors

MkUtcClock 

Instances

Generic UtcClock Source # 

Associated Types

type Rep UtcClock :: * -> * #

Methods

from :: UtcClock -> Rep UtcClock x #

to :: Rep UtcClock x -> UtcClock #

NFData UtcClock Source # 

Methods

rnf :: UtcClock -> () #

IsClock * UtcClock Source # 
Eq (ClockTime * UtcClock) Source # 
Eq (ClockTimeDiff * UtcClock) Source # 
Num (ClockTimeDiff * UtcClock) Source # 
Ord (ClockTimeDiff * UtcClock) Source # 
Show (ClockTime * UtcClock) Source # 
Show (ClockTimeDiff * UtcClock) Source # 
Generic (ClockTime * UtcClock) Source # 

Associated Types

type Rep (ClockTime * UtcClock) :: * -> * #

Generic (ClockTimeDiff * UtcClock) Source # 
Arbitrary (ClockTime * UtcClock) Source # 
Arbitrary (ClockTimeDiff * UtcClock) Source # 
Default (ClockTimeDiff * UtcClock) Source # 
NFData (ClockTime * UtcClock) Source # 

Methods

rnf :: ClockTime * UtcClock -> () #

NFData (ClockTimeDiff * UtcClock) Source # 

Methods

rnf :: ClockTimeDiff * UtcClock -> () #

LocalOrd (ClockTimeDiff * UtcClock) Source # 
type Rep UtcClock Source # 
type Rep UtcClock = D1 (MetaData "UtcClock" "Data.MediaBus.Basics.Clock" "mediabus-0.3.2.1-5dJYyJReQmz6GqWaXLa130" False) (C1 (MetaCons "MkUtcClock" PrefixI False) U1)
data ClockTime * UtcClock Source # 
data ClockTimeDiff * UtcClock Source # 
type MonadClock * UtcClock m Source # 
type Rep (ClockTime * UtcClock) Source # 
type Rep (ClockTime * UtcClock) = D1 (MetaData "ClockTime" "Data.MediaBus.Basics.Clock" "mediabus-0.3.2.1-5dJYyJReQmz6GqWaXLa130" True) (C1 (MetaCons "MkUtcClockTime" PrefixI True) (S1 (MetaSel (Just Symbol "_utcClockTime") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 UTCTime)))
type Rep (ClockTimeDiff * UtcClock) Source # 
type Rep (ClockTimeDiff * UtcClock) = D1 (MetaData "ClockTimeDiff" "Data.MediaBus.Basics.Clock" "mediabus-0.3.2.1-5dJYyJReQmz6GqWaXLa130" True) (C1 (MetaCons "MkUtcClockTimeDiff" PrefixI True) (S1 (MetaSel (Just Symbol "_utcClockTimeDiff") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 NominalDiffTime)))