1-- | 2-- Module : Network.TLS.Measurement 3-- License : BSD-style 4-- Maintainer : Vincent Hanquez <vincent@snarc.org> 5-- Stability : experimental 6-- Portability : unknown 7-- 8module Network.TLS.Measurement 9 ( Measurement(..) 10 , newMeasurement 11 , addBytesReceived 12 , addBytesSent 13 , resetBytesCounters 14 , incrementNbHandshakes 15 ) where 16 17import Network.TLS.Imports 18 19-- | record some data about this connection. 20data Measurement = Measurement 21 { nbHandshakes :: !Word32 -- ^ number of handshakes on this context 22 , bytesReceived :: !Word32 -- ^ bytes received since last handshake 23 , bytesSent :: !Word32 -- ^ bytes sent since last handshake 24 } deriving (Show,Eq) 25 26newMeasurement :: Measurement 27newMeasurement = Measurement 28 { nbHandshakes = 0 29 , bytesReceived = 0 30 , bytesSent = 0 31 } 32 33addBytesReceived :: Int -> Measurement -> Measurement 34addBytesReceived sz measure = 35 measure { bytesReceived = bytesReceived measure + fromIntegral sz } 36 37addBytesSent :: Int -> Measurement -> Measurement 38addBytesSent sz measure = 39 measure { bytesSent = bytesSent measure + fromIntegral sz } 40 41resetBytesCounters :: Measurement -> Measurement 42resetBytesCounters measure = measure { bytesReceived = 0, bytesSent = 0 } 43 44incrementNbHandshakes :: Measurement -> Measurement 45incrementNbHandshakes measure = 46 measure { nbHandshakes = nbHandshakes measure + 1 } 47