    {-# LINE 2 "./Graphics/UI/Gtk/WebKit/SecurityOrigin.chs" #-}
    -- -*-haskell-*-
    -----------------------------------------------------------------------------
    -- Module : Graphics.UI.Gtk.WebKit.WebSecurityOrigin
    -- Author : Andy Stewart
    -- Copyright : (c) 2010 Andy Stewart <lazycat.manatee@gmail.com>
    --
    -- This library is free software; you can redistribute it and/or
    -- modify it under the terms of the GNU Lesser General Public
    -- License as published by the Free Software Foundation; either
    -- version 2.1 of the License, or (at your option) any later version.
    --
    -- This library is distributed in the hope that it will be useful,
    -- but WITHOUT ANY WARRANTY; without even the implied warranty of
    -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
    -- Lesser General Public License for more details.
    --
    -- |
    -- Maintainer : gtk2hs-users@lists.sourceforge.net
    -- Stability : provisional
    -- Portability : portable (depends on GHC)
    --
    -- Access to the WebKit Web SecurityOrigin
    -----------------------------------------------------------------------------

    module Graphics.UI.Gtk.WebKit.SecurityOrigin (
    -- * Desciption
    -- | WebKitSecurityOrigin is a representation of a security domain defined by web sites. An origin
    -- consists of a host name, a protocol, and a port number. Web sites with the same security origin can
    -- access each other's resources for client-side scripting or database access.
    --
    -- Use 'webFrameGetSecurityOrigin' to get the security origin of a WebKitWebFrame.
    --
    -- Database quotas and usages are also defined per security origin. The cumulative disk usage of an
    -- origin's databases may be retrieved with 'securityOriginGetWebDatabaseUsage'. An origin's
    -- quota can be adjusted with 'securityOriginSetWebDatabaseQuota'.

    -- * Types
      SecurityOrigin,
      SecurityOriginClass,

    -- * Methods
      securityOriginGetAllWebDatabases,
      securityOriginGetHost,
      securityOriginGetPort,
      securityOriginGetProtocol,
      securityOriginGetWebDatabaseQuota,
      securityOriginSetWebDatabaseQuota,
      securityOriginGetWebDatabaseUsage,
    ) where

    import Control.Monad (liftM)

    import System.Glib.FFI
    import System.Glib.UTFString
    import System.Glib.GList
    import System.Glib.GError
    import Graphics.UI.Gtk.Gdk.Events

    import Graphics.UI.Gtk.Abstract.Object (makeNewObject)
    import Graphics.UI.Gtk.WebKit.Types
    {-# LINE 62 "./Graphics/UI/Gtk/WebKit/SecurityOrigin.chs" #-}
    import System.Glib.GObject
    {-# LINE 63 "./Graphics/UI/Gtk/WebKit/SecurityOrigin.chs" #-}

    {-# LINE 65 "./Graphics/UI/Gtk/WebKit/SecurityOrigin.chs" #-}

    -- * Methods.

    -- | Returns the frame's security origin.
    securityOriginGetAllWebDatabases ::
       SecurityOriginClass self => self
     -> IO [WebDatabase]
    securityOriginGetAllWebDatabases so = do
      glist <- (\(SecurityOrigin arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_security_origin_get_all_web_databases argPtr1) (toSecurityOrigin so)
      databasePtr <- fromGList glist
      mapM (makeNewGObject mkWebDatabase . return) databasePtr

    -- | Returns the hostname for the security origin.
    securityOriginGetHost ::
       SecurityOriginClass self => self
     -> IO String
    securityOriginGetHost so =
      (\(SecurityOrigin arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_security_origin_get_host argPtr1) (toSecurityOrigin so) >>= peekCString

    -- | Returns the port for the security origin.
    securityOriginGetPort ::
       SecurityOriginClass self => self
     -> IO Int
    securityOriginGetPort so =
      liftM fromIntegral $ (\(SecurityOrigin arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_security_origin_get_port argPtr1) (toSecurityOrigin so)

    -- | Returns the protocol for the security origin.
    securityOriginGetProtocol ::
       SecurityOriginClass self => self
     -> IO String
    securityOriginGetProtocol so =
      (\(SecurityOrigin arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_security_origin_get_protocol argPtr1) (toSecurityOrigin so) >>= peekCString

    -- | Returns the quota for Web Database storage of the security origin in bytes.
    securityOriginGetWebDatabaseQuota ::
       SecurityOriginClass self => self
     -> IO Int
    securityOriginGetWebDatabaseQuota so =
        liftM fromIntegral $ (\(SecurityOrigin arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_security_origin_get_web_database_quota argPtr1) (toSecurityOrigin so)

    -- | Returns the usage for Web Database storage of the security origin in bytes.
    securityOriginGetWebDatabaseUsage ::
       SecurityOriginClass self => self
     -> IO Int
    securityOriginGetWebDatabaseUsage so =
        liftM fromIntegral $ (\(SecurityOrigin arg1) -> withForeignPtr arg1 $ \argPtr1 ->webkit_security_origin_get_web_database_usage argPtr1) (toSecurityOrigin so)

    -- | Adjust the quota for Web Database storage of the security origin
    securityOriginSetWebDatabaseQuota ::
       SecurityOriginClass self => self
     -> Int
     -> IO ()
    securityOriginSetWebDatabaseQuota so quota =
      (\(SecurityOrigin arg1) arg2 -> withForeignPtr arg1 $ \argPtr1 ->webkit_security_origin_set_web_database_quota argPtr1 arg2) (toSecurityOrigin so) (fromIntegral quota)

    foreign import ccall safe "webkit_security_origin_get_all_web_databases"
      webkit_security_origin_get_all_web_databases :: ((Ptr SecurityOrigin) -> (IO (Ptr ())))

    foreign import ccall safe "webkit_security_origin_get_host"
      webkit_security_origin_get_host :: ((Ptr SecurityOrigin) -> (IO (Ptr CChar)))

    foreign import ccall safe "webkit_security_origin_get_port"
      webkit_security_origin_get_port :: ((Ptr SecurityOrigin) -> (IO CUInt))

    foreign import ccall safe "webkit_security_origin_get_protocol"
      webkit_security_origin_get_protocol :: ((Ptr SecurityOrigin) -> (IO (Ptr CChar)))

    foreign import ccall safe "webkit_security_origin_get_web_database_quota"
      webkit_security_origin_get_web_database_quota :: ((Ptr SecurityOrigin) -> (IO CULLong))

    foreign import ccall safe "webkit_security_origin_get_web_database_usage"
      webkit_security_origin_get_web_database_usage :: ((Ptr SecurityOrigin) -> (IO CULLong))

    foreign import ccall safe "webkit_security_origin_set_web_database_quota"
      webkit_security_origin_set_web_database_quota :: ((Ptr SecurityOrigin) -> (CULLong -> (IO ())))