{-| Module : Mellon.Controller Description : The default @mellon-core@ controller Copyright : (c) 2016, Drew Hess License : BSD3 Maintainer : Drew Hess <src@drewhess.com> Stability : experimental Portability : non-portable In @mellon-core@, controllers are the intermediary between the @mellon-core@ state machine, the physical access device, and the user who wants to control the device. The user interacts directly only with the controller, not with the physical access device or the state machine. A controller provides two commands to the user: /lock/ and /unlock/. User lock commands are effective immediately, and the device remains locked until the user runs a subsequent unlock command. User unlock commands are effective immediately, but also take a 'UTCTime' argument that specifies the date at which the controller will automatically lock the device again. A controller's behavior is determined by the @mellon-core@ state machine. See the "Mellon.StateMachine" module for a detailed description of the state machine's operation. This module re-exports the default (and, currently, only) controller implementation. -} module Mellon.Controller ( module Mellon.Controller.Async ) where import Mellon.Controller.Async