aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2016-02-25 17:56:21 +0000
committerGregor Kleen <gkleen@yggdrasil.li>2016-02-25 17:56:21 +0000
commit4d7ecb10ada3115da14fb7baefe9cb1b510bb6ae (patch)
treeb46b2b22ee73d76f419d87a23294d8d982346eb7
parentf515803694d7f8430b064f16a5a923b09ba70650 (diff)
downloadthermoprint-4d7ecb10ada3115da14fb7baefe9cb1b510bb6ae.tar
thermoprint-4d7ecb10ada3115da14fb7baefe9cb1b510bb6ae.tar.gz
thermoprint-4d7ecb10ada3115da14fb7baefe9cb1b510bb6ae.tar.bz2
thermoprint-4d7ecb10ada3115da14fb7baefe9cb1b510bb6ae.tar.xz
thermoprint-4d7ecb10ada3115da14fb7baefe9cb1b510bb6ae.zip
delayed debugging printer
-rw-r--r--server/default-conf/Main.hs1
-rw-r--r--server/src/Thermoprint/Server/Printer/Debug/Delayed.hs16
-rw-r--r--server/thermoprint-server.cabal1
3 files changed, 18 insertions, 0 deletions
diff --git a/server/default-conf/Main.hs b/server/default-conf/Main.hs
index cbfc476..f0b7f43 100644
--- a/server/default-conf/Main.hs
+++ b/server/default-conf/Main.hs
@@ -20,4 +20,5 @@ main = thermoprintServer True (Nat runSqlite) $ def `withPrinters` printers
20 runSqlite = runStderrLoggingT . withSqlitePool "thermoprint.sqlite" 1 . runReaderT 20 runSqlite = runStderrLoggingT . withSqlitePool "thermoprint.sqlite" 1 . runReaderT
21 21
22 printers = [ (pure debugPrint, def) 22 printers = [ (pure debugPrint, def)
23 , (pure $ delayedDebugPrint (10 * 10^6), def)
23 ] 24 ]
diff --git a/server/src/Thermoprint/Server/Printer/Debug/Delayed.hs b/server/src/Thermoprint/Server/Printer/Debug/Delayed.hs
new file mode 100644
index 0000000..c002d43
--- /dev/null
+++ b/server/src/Thermoprint/Server/Printer/Debug/Delayed.hs
@@ -0,0 +1,16 @@
1-- | A printer which blocks for a certain time and writes to log
2module Thermoprint.Server.Printer.Debug.Delayed
3 ( delayedDebugPrint
4 ) where
5
6import Control.Monad.IO.Class
7import Control.Applicative
8
9import Control.Concurrent (threadDelay)
10
11import Thermoprint.Server.Printer
12import Thermoprint.Server.Printer.Debug
13
14delayedDebugPrint :: Int -> PrinterMethod
15-- ^ Wait the given number of microseconds before invoking 'debugPrint'
16delayedDebugPrint wait = PM $ \po -> let (PM debugPrint') = debugPrint in liftIO (threadDelay wait) *> debugPrint' po
diff --git a/server/thermoprint-server.cabal b/server/thermoprint-server.cabal
index bc3650b..f98cac1 100644
--- a/server/thermoprint-server.cabal
+++ b/server/thermoprint-server.cabal
@@ -25,6 +25,7 @@ library
25 , Thermoprint.Server.Queue 25 , Thermoprint.Server.Queue
26 , Thermoprint.Server.Printer 26 , Thermoprint.Server.Printer
27 , Thermoprint.Server.Printer.Debug 27 , Thermoprint.Server.Printer.Debug
28 , Thermoprint.Server.Printer.Debug.Delayed
28 , Thermoprint.Server.Printer.Generic 29 , Thermoprint.Server.Printer.Generic
29 other-modules: Thermoprint.Server.Database.Instances 30 other-modules: Thermoprint.Server.Database.Instances
30 , Paths_thermoprint_server 31 , Paths_thermoprint_server