packages feed

netclock 0.2 → 0.3

raw patch · 2 files changed

+22/−3 lines, 2 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Network.Netclock.Client: bpsListenLoop :: Transport t => MVar (BpsChange, [BpsChange]) -> t -> IO b
+ Network.Netclock.Client: logicalTime :: BpsChange -> Double -> Double
+ Network.Netclock.Client: readChange :: Transport t => t -> IO BpsChange
+ Network.Netclock.Client: sched :: String -> String -> String -> Int -> IO () -> IO ()
+ Network.Netclock.Client: scport :: Int
+ Network.Netclock.Client: toFloat :: Datum -> Double

Files

Network/Netclock/Client.hs view
@@ -31,14 +31,33 @@  scport = 57120 +logicalTime :: BpsChange -> Double -> Double+logicalTime change beat = +  changeTime change + ((beat - changeBeat change) / changeBps change)+ waitBeat :: BpsChange -> Double -> IO () waitBeat change beat = -    do let logicalTime = changeTime change + ((beat - changeBeat change) / changeBps change)+    do let logicalNow = logicalTime change beat        realNow <- utcr-       let diff = logicalTime - realNow+       let diff = logicalNow - realNow        let delay = floor $ diff * 1000000.0        when (diff > 0) $ threadDelay delay        return ()++sched :: String -> String -> String -> Int -> IO () -> IO ()+sched username clientIp serverIp t f = +  do mBps <- newEmptyMVar+     forkIO $ bpsListen username clientIp serverIp mBps+     change <- updateBps mBps 0+     realNow <- utcr+     let diff = realNow - changeTime change+         bps = changeBps change+         beat = changeBeat change + (diff * bps)+         nextbeat = fromIntegral $ ((floor beat) + t*2) - ((floor beat) `mod` t)+     current <- updateBps mBps nextbeat+     forkIO $ do waitBeat current (nextbeat - 1/32) +                 f+     return()  clocked :: String -> String -> String -> Int -> (BpsChange -> Int -> IO ()) -> IO () clocked username clientIp serverIp tpb f = 
netclock.cabal view
@@ -7,7 +7,7 @@ -- The package version. See the Haskell package versioning policy -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for -- standards guiding when and how versions should be incremented.-Version:             0.2+Version:             0.3  -- A short (one-line) description of the package. Synopsis:            Netclock protocol