diff options
| author | pb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157> | 2010-05-15 17:26:52 +0000 |
|---|---|---|
| committer | pb <pb@9f8f72e9-4bf4-416e-b76e-7d4203597157> | 2010-05-15 17:26:52 +0000 |
| commit | d80cee1ecddeb75e54de767c35f04a9a004eed12 (patch) | |
| tree | 87d9f1cde449312972ccc0c9bd18ef7374ce5cac /HsBot | |
| parent | 55d68bd70662f906b69b49979e22ead3fcc4178f (diff) | |
* renamed HsBot.Callbacks.Callback into HsBot.Callbacks.Base
* all callbacks are now stored in the datatype Callback.
git-svn-id: https://ssl.buetow.org/repos/hsbot/trunk@66 9f8f72e9-4bf4-416e-b76e-7d4203597157
Diffstat (limited to 'HsBot')
| -rw-r--r-- | HsBot/Base.hs | 2 | ||||
| -rw-r--r-- | HsBot/Callbacks.hs | 11 | ||||
| -rw-r--r-- | HsBot/Callbacks/Base.hs | 13 | ||||
| -rw-r--r-- | HsBot/Callbacks/Callback.hs | 13 | ||||
| -rw-r--r-- | HsBot/Callbacks/Dummy.hs | 5 | ||||
| -rw-r--r-- | HsBot/Callbacks/MessageCounter.hs | 6 | ||||
| -rw-r--r-- | HsBot/Callbacks/PrintMessages.hs | 5 | ||||
| -rw-r--r-- | HsBot/Callbacks/StoreMessages.hs | 5 |
8 files changed, 33 insertions, 27 deletions
diff --git a/HsBot/Base.hs b/HsBot/Base.hs index 8f6d099..1c3d4a4 100644 --- a/HsBot/Base.hs +++ b/HsBot/Base.hs @@ -18,7 +18,7 @@ startBase = do state' <- state -- Extract State from the IO Monad ircStart (DispatchEnv state' conf dispatch) -dispatch :: Dispatch +dispatch :: DispatchFunction dispatch msg sendMessage env@(Env state conf) = dispatch' msg where dispatch' ('!':_) = diff --git a/HsBot/Callbacks.hs b/HsBot/Callbacks.hs index 7caff19..0bbf08f 100644 --- a/HsBot/Callbacks.hs +++ b/HsBot/Callbacks.hs @@ -3,16 +3,17 @@ module HsBot.Callbacks (callbacksRun) where import HsBot.Base.Env import HsBot.Base.State +import HsBot.Callbacks.Base import HsBot.Callbacks.MessageCounter import HsBot.Callbacks.PrintMessages import HsBot.Callbacks.StoreMessages import HsBot.Callbacks.Dummy registeredCallbacks = [ - messageCounter, - printMessages, - storeMessages, - dummy + makeMessageCounter, + makePrintMessages, + makeStoreMessages, + makeDummy ] callbacksRun :: String -> SendMessage -> Env -> IO Env @@ -22,6 +23,6 @@ callbacksRun str sendMessage env@(Env state _) where callbackAll [] env = return (env) callbackAll (callback:restCallbacks) env = do - env' <- callback str sendMessage env + env' <- (cbFunction callback) str sendMessage env callbackAll restCallbacks env' diff --git a/HsBot/Callbacks/Base.hs b/HsBot/Callbacks/Base.hs new file mode 100644 index 0000000..40e9769 --- /dev/null +++ b/HsBot/Callbacks/Base.hs @@ -0,0 +1,13 @@ +module HsBot.Callbacks.Base where + +import HsBot.Base.Env +import HsBot.Base.State + +type CallbackFunction = String -> SendMessage -> Env -> IO Env + +data Callback a = Callback { + cbPrio :: Integer, + cbFunction :: CallbackFunction +} + + diff --git a/HsBot/Callbacks/Callback.hs b/HsBot/Callbacks/Callback.hs deleted file mode 100644 index c92aa96..0000000 --- a/HsBot/Callbacks/Callback.hs +++ /dev/null @@ -1,13 +0,0 @@ -module HsBot.Callbacks.Callback where - -import HsBot.Base.Env -import HsBot.Base.State - -type CallbackFunction = String -> SendMessage -> Env -> IO Env - -class Callback a where - cbRunPrio :: a -> Integer - cbRunPrio a = 0 - - cbRun :: a - diff --git a/HsBot/Callbacks/Dummy.hs b/HsBot/Callbacks/Dummy.hs index 5d83ade..3096af5 100644 --- a/HsBot/Callbacks/Dummy.hs +++ b/HsBot/Callbacks/Dummy.hs @@ -1,6 +1,6 @@ -module HsBot.Callbacks.Dummy (dummy) where +module HsBot.Callbacks.Dummy (makeDummy) where -import HsBot.Callbacks.Callback +import HsBot.Callbacks.Base import HsBot.Base.Env import HsBot.Base.State @@ -8,3 +8,4 @@ import HsBot.Base.State dummy :: CallbackFunction dummy str sendMessage env@(Env state _) = return (env) +makeDummy = Callback 0 dummy diff --git a/HsBot/Callbacks/MessageCounter.hs b/HsBot/Callbacks/MessageCounter.hs index a2782a8..18f6dba 100644 --- a/HsBot/Callbacks/MessageCounter.hs +++ b/HsBot/Callbacks/MessageCounter.hs @@ -1,6 +1,6 @@ -module HsBot.Callbacks.MessageCounter (messageCounter) where +module HsBot.Callbacks.MessageCounter (makeMessageCounter) where -import HsBot.Callbacks.Callback +import HsBot.Callbacks.Base import HsBot.Base.Env import HsBot.Base.State @@ -12,3 +12,5 @@ update user = user { userMessages = 1 + userMessages user } messageCounter :: CallbackFunction messageCounter str sendMessage (Env state conf) = do return (Env (stateUpdateUser state (currentSender state) update) conf) + +makeMessageCounter = Callback 0 messageCounter diff --git a/HsBot/Callbacks/PrintMessages.hs b/HsBot/Callbacks/PrintMessages.hs index 456d46d..2674aa9 100644 --- a/HsBot/Callbacks/PrintMessages.hs +++ b/HsBot/Callbacks/PrintMessages.hs @@ -1,6 +1,6 @@ -module HsBot.Callbacks.PrintMessages (printMessages) where +module HsBot.Callbacks.PrintMessages (makePrintMessages) where -import HsBot.Callbacks.Callback +import HsBot.Callbacks.Base import HsBot.Base.Env import HsBot.Base.State @@ -12,3 +12,4 @@ printMessages str sendMessage env@(Env state _) = do ++ str return (env) +makePrintMessages = Callback 0 printMessages diff --git a/HsBot/Callbacks/StoreMessages.hs b/HsBot/Callbacks/StoreMessages.hs index 673cc38..0a7ab4d 100644 --- a/HsBot/Callbacks/StoreMessages.hs +++ b/HsBot/Callbacks/StoreMessages.hs @@ -1,6 +1,6 @@ -module HsBot.Callbacks.StoreMessages (storeMessages) where +module HsBot.Callbacks.StoreMessages (makeStoreMessages) where -import HsBot.Callbacks.Callback +import HsBot.Callbacks.Base import HsBot.Base.Env import HsBot.Base.State @@ -9,3 +9,4 @@ storeMessages :: CallbackFunction storeMessages str sendMessage env@(Env state _) = do return (env) +makeStoreMessages = Callback 0 storeMessages |
