{-# LANGUAGE CPP #-}
module P_IO_data where
import XStuff
import ShowFun()
import Prelude hiding (IOError)
import System.Directory(XdgDirectory)
#ifdef VERSION_bytestring
import qualified Data.ByteString.Lazy as BS
#endif
#ifdef VERSION_old_time
import System.Time(ClockTime,CalendarTime)
#endif
#ifdef VERSION_time
import Data.Time(UTCTime,ZonedTime)
#endif
data Request =
ReadFile String
| WriteFile String String
| AppendFile String String
| ReadBinFile String
| WriteBinFile String Bin
| AppendBinFile String Bin
| DeleteFile String
| StatusFile String
| ReadBinaryFile String
| WriteBinaryFile String String
| ReadXdgFile XdgDirectory String
| WriteXdgFile XdgDirectory String String
| ReadChan String
| AppendChan String String
| ReadBinChan String
| AppendBinChan String Bin
| StatusChan String
| Echo Bool
| GetArgs
| GetEnv String
| SetEnv String String
| ReadChannels [String]
| ReadBinChannels [String]
| CreateProcess Dialogue
| CreateDirectory String String
| OpenFile String Bool
| OpenBinFile String Bool
| CloseFile File
| ReadVal File
| ReadBinVal File
| WriteVal File Char
| WriteBinVal File Bin
| Sleep Double
| ChangeDirectory String
| GetTime
| DeleteDirectory String
| System String
| ReadDirectory String
| XCommand (XDisplay,XWId,XCommand)
| GetAsyncInput
| GetCpuTime
| GetProgName
| GetLocalTime
#ifdef VERSION_old_time
| ToCalendarTime ClockTime
#endif
| SigAction Int SigAct
| Exit Int
| ReadFileScattered String [Int]
| Select [Descriptor]
| SocketRequest SocketRequest
| XRequest (XDisplay,XWId,XRequest)
| ReadFileFast String
| RenameFile String String
| GetCurrentDirectory
| GetModificationTime FilePath
| GetCurrentTime
| GetZonedTime
deriving (Int -> Request -> ShowS
[Request] -> ShowS
Request -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Request] -> ShowS
$cshowList :: [Request] -> ShowS
show :: Request -> String
$cshow :: Request -> String
showsPrec :: Int -> Request -> ShowS
$cshowsPrec :: Int -> Request -> ShowS
Show,ReadPrec [Request]
ReadPrec Request
Int -> ReadS Request
ReadS [Request]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Request]
$creadListPrec :: ReadPrec [Request]
readPrec :: ReadPrec Request
$creadPrec :: ReadPrec Request
readList :: ReadS [Request]
$creadList :: ReadS [Request]
readsPrec :: Int -> ReadS Request
$creadsPrec :: Int -> ReadS Request
Read)
data SigAct = SAIgnore
| SADefault
| SACatch (String -> Dialogue)
deriving (Int -> SigAct -> ShowS
[SigAct] -> ShowS
SigAct -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SigAct] -> ShowS
$cshowList :: [SigAct] -> ShowS
show :: SigAct -> String
$cshow :: SigAct -> String
showsPrec :: Int -> SigAct -> ShowS
$cshowsPrec :: Int -> SigAct -> ShowS
Show,ReadPrec [SigAct]
ReadPrec SigAct
Int -> ReadS SigAct
ReadS [SigAct]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [SigAct]
$creadListPrec :: ReadPrec [SigAct]
readPrec :: ReadPrec SigAct
$creadPrec :: ReadPrec SigAct
readList :: ReadS [SigAct]
$creadList :: ReadS [SigAct]
readsPrec :: Int -> ReadS SigAct
$creadsPrec :: Int -> ReadS SigAct
Read)
data Response = Success
| Str String
| Bn Bin
| Failure IOError
| Tag [(String, Char)]
| BinTag [(String, Bin)]
| StrList [String]
| Fil File
| Dbl Double
| AsyncInput AsyncInput
| SocketResponse SocketResponse
| XResponse XResponse
| IntResp Int
| SelectResp [([File], [File], [Double])]
| SigActResp SigAct
#ifdef VERSION_old_time
| ClockTime ClockTime
| CalendarTime CalendarTime
#endif
#ifdef VERSION_time
| UTCTime UTCTime
| ZonedTime ZonedTime
#endif
deriving (Int -> Response -> ShowS
[Response] -> ShowS
Response -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Response] -> ShowS
$cshowList :: [Response] -> ShowS
show :: Response -> String
$cshow :: Response -> String
showsPrec :: Int -> Response -> ShowS
$cshowsPrec :: Int -> Response -> ShowS
Show,ReadPrec [Response]
ReadPrec Response
Int -> ReadS Response
ReadS [Response]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Response]
$creadListPrec :: ReadPrec [Response]
readPrec :: ReadPrec Response
$creadPrec :: ReadPrec Response
readList :: ReadS [Response]
$creadList :: ReadS [Response]
readsPrec :: Int -> ReadS Response
$creadsPrec :: Int -> ReadS Response
Read)
data IOError = WriteError String
| ReadError String
| SearchError String
| FormatError String
| OtherError String
deriving (Int -> IOError -> ShowS
[IOError] -> ShowS
IOError -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [IOError] -> ShowS
$cshowList :: [IOError] -> ShowS
show :: IOError -> String
$cshow :: IOError -> String
showsPrec :: Int -> IOError -> ShowS
$cshowsPrec :: Int -> IOError -> ShowS
Show,ReadPrec [IOError]
ReadPrec IOError
Int -> ReadS IOError
ReadS [IOError]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [IOError]
$creadListPrec :: ReadPrec [IOError]
readPrec :: ReadPrec IOError
$creadPrec :: ReadPrec IOError
readList :: ReadS [IOError]
$creadList :: ReadS [IOError]
readsPrec :: Int -> ReadS IOError
$creadsPrec :: Int -> ReadS IOError
Read)
#ifdef VERSION_bytestring
type Bin = BS.ByteString
#else
type Bin = Unused
#endif
type Dialogue = [Response] -> [Request]
type File = Unused
type Unused = ()
#ifdef VERSION_old_time
instance Read ClockTime
#endif