-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Xenstore client access
--   
--   Xenstore client access
@package xenstore
@version 0.1.1

module System.Xen.Store
data XsHandle
data XsError
ErrorNoEnt :: XsError
ErrorAgain :: XsError
ErrorInval :: XsError
ErrorOther :: ByteString -> XsError
data Perm
PermNone :: Perm
PermRead :: Perm
PermWrite :: Perm
PermRDWR :: Perm
data XsPerms
XsPerms :: Word32 -> Perm -> [(Word32, Perm)] -> XsPerms
[permOwner] :: XsPerms -> Word32
[permOther] :: XsPerms -> Perm
[permACL] :: XsPerms -> [(Word32, Perm)]
type XsPath = ByteString
type XsData = ByteString
type XsWatchCallback = XsPath -> IO ()
initiateXS :: IO XsHandle
terminateXS :: XsHandle -> IO ()
withXS :: (XsHandle -> IO a) -> IO a
tryXS :: IO a -> IO (Maybe a)
withTransaction :: XsHandle -> IO a -> IO a

-- | write a value to a path in the store.
xsWrite :: XsHandle -> XsPath -> XsData -> IO ()

-- | read a value from the path in the store.
xsRead :: XsHandle -> XsPath -> IO XsData

-- | create a path in the store.
xsMkdir :: XsHandle -> XsPath -> IO ()

-- | remove a path in the store.
xsRm :: XsHandle -> XsPath -> IO ()

-- | list entries from this path in the store.
xsDirectory :: XsHandle -> XsPath -> IO [XsPath]
xsGetPerms :: XsHandle -> XsPath -> IO XsPerms
xsSetPerms :: XsHandle -> XsPath -> XsPerms -> IO ()
xsGetDomainPath :: XsHandle -> Word32 -> IO XsPath

-- | watch a specific path for change, and execute a specific callback when
--   it's firing
xsWatch :: XsHandle -> XsPath -> XsData -> XsWatchCallback -> IO ()

-- | unwatch a watch
xsUnwatch :: XsHandle -> XsPath -> XsData -> IO ()
instance GHC.Classes.Eq System.Xen.Store.XsError
instance GHC.Show.Show System.Xen.Store.XsError
instance GHC.Classes.Eq System.Xen.Store.Perm
instance GHC.Show.Show System.Xen.Store.Perm
instance GHC.Classes.Eq System.Xen.Store.PacketHeader
instance GHC.Show.Show System.Xen.Store.PacketHeader
instance GHC.Enum.Enum System.Xen.Store.Operation
instance GHC.Classes.Eq System.Xen.Store.Operation
instance GHC.Show.Show System.Xen.Store.Operation
instance Data.Serialize.Serialize System.Xen.Store.XsPerms
instance GHC.Exception.Exception System.Xen.Store.XsError
instance Data.Serialize.Serialize System.Xen.Store.Perm
instance Data.Serialize.Serialize System.Xen.Store.PacketHeader
