webkitgtk3-0.14.1.0: Graphics/UI/Gtk/WebKit/DOM/Storage.chs
module Graphics.UI.Gtk.WebKit.DOM.Storage(
#if WEBKIT_CHECK_VERSION(2,2,2)
key,
getItem,
#endif
setItem,
#if WEBKIT_CHECK_VERSION(2,2,2)
removeItem,
clear,
getLength,
#endif
Storage,
castToStorage,
gTypeStorage,
StorageClass,
toStorage,
) where
import Prelude hiding (drop, error, print)
import Data.Typeable (Typeable)
import Foreign.Marshal (maybePeek, maybeWith)
import System.Glib.FFI (maybeNull, withForeignPtr, nullForeignPtr, Ptr, nullPtr, castPtr, Word, Int64, Word64, CChar(..), CInt(..), CUInt(..), CLong(..), CULong(..), CLLong(..), CULLong(..), CShort(..), CUShort(..), CFloat(..), CDouble(..), toBool, fromBool)
import System.Glib.UTFString (GlibString(..), readUTFString)
import Control.Applicative ((<$>))
import Control.Monad (void)
import Control.Monad.IO.Class (MonadIO(..))
import System.Glib.GError
import Graphics.UI.Gtk.WebKit.DOM.EventTargetClosures
import Graphics.UI.Gtk.WebKit.DOM.EventM
{#import Graphics.UI.Gtk.WebKit.Types#}
import Graphics.UI.Gtk.WebKit.DOM.Enums
#if WEBKIT_CHECK_VERSION(2,2,2)
key ::
(MonadIO m, StorageClass self, GlibString string) =>
self -> Word -> m (Maybe string)
key self index
= liftIO
((propagateGError $
\ errorPtr_ ->
{# call webkit_dom_storage_key #} (toStorage self)
(fromIntegral index)
errorPtr_)
>>=
maybePeek readUTFString)
getItem ::
(MonadIO m, StorageClass self, GlibString string) =>
self -> string -> m (Maybe string)
getItem self key
= liftIO
((propagateGError $
\ errorPtr_ ->
withUTFString key $
\ keyPtr ->
{# call webkit_dom_storage_get_item #} (toStorage self) keyPtr
errorPtr_)
>>=
maybePeek readUTFString)
#endif
setItem ::
(MonadIO m, StorageClass self, GlibString string) =>
self -> string -> string -> m ()
setItem self key data'
= liftIO
(propagateGError $
\ errorPtr_ ->
withUTFString data' $
\ dataPtr ->
withUTFString key $
\ keyPtr ->
{# call webkit_dom_storage_set_item #} (toStorage self) keyPtr
dataPtr
errorPtr_)
#if WEBKIT_CHECK_VERSION(2,2,2)
removeItem ::
(MonadIO m, StorageClass self, GlibString string) =>
self -> string -> m ()
removeItem self key
= liftIO
(propagateGError $
\ errorPtr_ ->
withUTFString key $
\ keyPtr ->
{# call webkit_dom_storage_remove_item #} (toStorage self) keyPtr
errorPtr_)
clear :: (MonadIO m, StorageClass self) => self -> m ()
clear self
= liftIO
(propagateGError $
\ errorPtr_ ->
{# call webkit_dom_storage_clear #} (toStorage self) errorPtr_)
getLength :: (MonadIO m, StorageClass self) => self -> m Word
getLength self
= liftIO
(fromIntegral <$>
(propagateGError $
\ errorPtr_ ->
{# call webkit_dom_storage_get_length #} (toStorage self)
errorPtr_))
#endif