name: eventloop -- The package version. See the Haskell package versioning policy (PVP) -- for standards guiding when and how versions should be incremented. -- http://www.haskell.org/haskellwiki/Package_versioning_policy -- PVP summary: +-+------- breaking API changes -- | | +----- non-breaking API additions -- | | | +--- code changes with no API change version: 0.4.1.2 synopsis: A different take on an IO system. Based on Amanda's IO loop, this eventloop takes a function that maps input events to output events. It can easily be extended by modules that represent IO devices or join multiple modules together. description: A different take on an IO system. Based on Amanda's IO loop, this eventloop takes a function that maps input events to output events. It can easily be extended by modules that represent IO devices or join multiple modules together. Each module exists of a initialize and teardown function that are both called once at startup and shutting down. During run-time, a module can provice a preprocessor function (which transforms input events before they get to the eventloop), and a postprocessor function (which transforms output events after they are received from the eventloop but before they are send off). Next to these bookkeeping functions, a module can exist of a (check for events and an event retrieve) function pair which result in input events and an addition to the event sender function which handles output events. This results in the following states: |Start|: initialize -> |Run-Time| -> teardown |Run-Time|: eventCheckers - Yes > preprocessors -> eventloop -> postprocessors -> event sender -> |Run-Time| |- No > |Run-Time| Each module has a piece of "memory"/state which is defined by the module itself and all of the module states are combined in the IO state. When writing/installing a module, modifications has to be made at certain points in the code due to the poor modularity of Haskell. homepage: - license: BSD3 license-file: LICENSE author: Sebastiaan la Fleur maintainer: sebastiaan.la.fleur@gmail.com copyright: University of Twente 2015 | Sebastiaan la Fleur 2015 category: Eventloop build-type: Simple -- extra-source-files: cabal-version: >=1.10 library exposed-modules: Eventloop.EventloopCore, Eventloop.Types.EventTypes, Eventloop.Types.Common, Eventloop.Utility.Vectors, Eventloop.Utility.Trees.GeneralTree, Eventloop.RouteEvent, Eventloop.DefaultConfiguration, Eventloop.Module.Websocket.Canvas, Eventloop.Module.Websocket.Keyboard, Eventloop.Module.Websocket.Mouse, Eventloop.Module.DrawTrees, Eventloop.Module.BasicShapes, Eventloop.Module.File, Eventloop.Module.StdIn, Eventloop.Module.StdOut, Eventloop.Module.Timer, Eventloop.Module.Graphs -- Modules included in this library but not exported. other-modules: Eventloop.Utility.Websockets, Eventloop.Utility.BufferedWebsockets, Eventloop.Utility.Config, Eventloop.Utility.Trees.LayoutTree, Eventloop.Utility.Concurrent, Eventloop.Module.Websocket.Canvas.Canvas, Eventloop.Module.Websocket.Canvas.JSONEncoding, Eventloop.Module.Websocket.Canvas.Opcode, Eventloop.Module.Websocket.Canvas.Types, Eventloop.Module.Websocket.Keyboard.Keyboard, Eventloop.Module.Websocket.Keyboard.Types, Eventloop.Module.Websocket.Mouse.Mouse, Eventloop.Module.Websocket.Mouse.Types, Eventloop.Module.DrawTrees.DrawTrees, Eventloop.Module.DrawTrees.Types, Eventloop.Module.BasicShapes.BasicShapes, Eventloop.Module.BasicShapes.Types, Eventloop.Module.BasicShapes.Classes, Eventloop.Module.File.File, Eventloop.Module.File.Types, Eventloop.Module.StdIn.StdIn, Eventloop.Module.StdIn.Types, Eventloop.Module.StdOut.StdOut, Eventloop.Module.StdOut.Types, Eventloop.Module.Timer.Timer, Eventloop.Module.Timer.Types, Eventloop.Module.Graphs.Graphs, Eventloop.Module.Graphs.Types other-extensions: OverloadedStrings build-depends: base >=4.7 && <4.9, network >=2.6 && <2.7, text >=1.2 && <1.3, websockets >=0.9 && <0.10, timers >=0.2 && <0.3, suspend >=0.2 && <0.3, aeson >=0.8 && <0.9, bytestring >=0.10 && <0.11 -- Directories containing source files. hs-source-dirs: src -- Base language which the package is written in. default-language: Haskell2010