module GI.Soup.Objects.Logger
(
Logger(..) ,
IsLogger ,
toLogger ,
noLogger ,
LoggerAttachMethodInfo ,
loggerAttach ,
LoggerDetachMethodInfo ,
loggerDetach ,
loggerNew ,
LoggerSetPrinterMethodInfo ,
loggerSetPrinter ,
LoggerSetRequestFilterMethodInfo ,
loggerSetRequestFilter ,
LoggerSetResponseFilterMethodInfo ,
loggerSetResponseFilter ,
LoggerLevelPropertyInfo ,
constructLoggerLevel ,
getLoggerLevel ,
loggerLevel ,
setLoggerLevel ,
LoggerMaxBodySizePropertyInfo ,
constructLoggerMaxBodySize ,
getLoggerMaxBodySize ,
loggerMaxBodySize ,
setLoggerMaxBodySize ,
) where
import Data.GI.Base.ShortPrelude
import qualified Data.GI.Base.ShortPrelude as SP
import qualified Data.GI.Base.Overloading as O
import qualified Prelude as P
import qualified Data.GI.Base.Attributes as GI.Attributes
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GVariant as B.GVariant
import qualified Data.GI.Base.GParamSpec as B.GParamSpec
import qualified Data.GI.Base.CallStack as B.CallStack
import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map
import qualified Foreign.Ptr as FP
import qualified GI.GLib.Callbacks as GLib.Callbacks
import qualified GI.GObject.Objects.Object as GObject.Object
import qualified GI.Soup.Callbacks as Soup.Callbacks
import qualified GI.Soup.Enums as Soup.Enums
import qualified GI.Soup.Interfaces.SessionFeature as Soup.SessionFeature
import qualified GI.Soup.Objects.Session as Soup.Session
newtype Logger = Logger (ManagedPtr Logger)
foreign import ccall "soup_logger_get_type"
c_soup_logger_get_type :: IO GType
instance GObject Logger where
gobjectType _ = c_soup_logger_get_type
class GObject o => IsLogger o
#if MIN_VERSION_base(4,9,0)
instance (GObject a, O.UnknownAncestorError Logger a) =>
IsLogger a
#endif
instance IsLogger Logger
instance GObject.Object.IsObject Logger
instance Soup.SessionFeature.IsSessionFeature Logger
toLogger :: IsLogger o => o -> IO Logger
toLogger = unsafeCastTo Logger
noLogger :: Maybe Logger
noLogger = Nothing
type family ResolveLoggerMethod (t :: Symbol) (o :: *) :: * where
ResolveLoggerMethod "addFeature" o = Soup.SessionFeature.SessionFeatureAddFeatureMethodInfo
ResolveLoggerMethod "attach" o = LoggerAttachMethodInfo
ResolveLoggerMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveLoggerMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveLoggerMethod "detach" o = LoggerDetachMethodInfo
ResolveLoggerMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveLoggerMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveLoggerMethod "hasFeature" o = Soup.SessionFeature.SessionFeatureHasFeatureMethodInfo
ResolveLoggerMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveLoggerMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveLoggerMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveLoggerMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveLoggerMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveLoggerMethod "removeFeature" o = Soup.SessionFeature.SessionFeatureRemoveFeatureMethodInfo
ResolveLoggerMethod "replaceData" o = GObject.Object.ObjectReplaceDataMethodInfo
ResolveLoggerMethod "replaceQdata" o = GObject.Object.ObjectReplaceQdataMethodInfo
ResolveLoggerMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveLoggerMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveLoggerMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveLoggerMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveLoggerMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveLoggerMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveLoggerMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveLoggerMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveLoggerMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveLoggerMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveLoggerMethod "setPrinter" o = LoggerSetPrinterMethodInfo
ResolveLoggerMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveLoggerMethod "setRequestFilter" o = LoggerSetRequestFilterMethodInfo
ResolveLoggerMethod "setResponseFilter" o = LoggerSetResponseFilterMethodInfo
ResolveLoggerMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveLoggerMethod t Logger, O.MethodInfo info Logger p) => O.IsLabelProxy t (Logger -> p) where
fromLabelProxy _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveLoggerMethod t Logger, O.MethodInfo info Logger p) => O.IsLabel t (Logger -> p) where
fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info)
#endif
getLoggerLevel :: (MonadIO m, IsLogger o) => o -> m Soup.Enums.LoggerLogLevel
getLoggerLevel obj = liftIO $ getObjectPropertyEnum obj "level"
setLoggerLevel :: (MonadIO m, IsLogger o) => o -> Soup.Enums.LoggerLogLevel -> m ()
setLoggerLevel obj val = liftIO $ setObjectPropertyEnum obj "level" val
constructLoggerLevel :: (IsLogger o) => Soup.Enums.LoggerLogLevel -> IO (GValueConstruct o)
constructLoggerLevel val = constructObjectPropertyEnum "level" val
data LoggerLevelPropertyInfo
instance AttrInfo LoggerLevelPropertyInfo where
type AttrAllowedOps LoggerLevelPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint LoggerLevelPropertyInfo = (~) Soup.Enums.LoggerLogLevel
type AttrBaseTypeConstraint LoggerLevelPropertyInfo = IsLogger
type AttrGetType LoggerLevelPropertyInfo = Soup.Enums.LoggerLogLevel
type AttrLabel LoggerLevelPropertyInfo = "level"
type AttrOrigin LoggerLevelPropertyInfo = Logger
attrGet _ = getLoggerLevel
attrSet _ = setLoggerLevel
attrConstruct _ = constructLoggerLevel
attrClear _ = undefined
getLoggerMaxBodySize :: (MonadIO m, IsLogger o) => o -> m Int32
getLoggerMaxBodySize obj = liftIO $ getObjectPropertyInt32 obj "max-body-size"
setLoggerMaxBodySize :: (MonadIO m, IsLogger o) => o -> Int32 -> m ()
setLoggerMaxBodySize obj val = liftIO $ setObjectPropertyInt32 obj "max-body-size" val
constructLoggerMaxBodySize :: (IsLogger o) => Int32 -> IO (GValueConstruct o)
constructLoggerMaxBodySize val = constructObjectPropertyInt32 "max-body-size" val
data LoggerMaxBodySizePropertyInfo
instance AttrInfo LoggerMaxBodySizePropertyInfo where
type AttrAllowedOps LoggerMaxBodySizePropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint LoggerMaxBodySizePropertyInfo = (~) Int32
type AttrBaseTypeConstraint LoggerMaxBodySizePropertyInfo = IsLogger
type AttrGetType LoggerMaxBodySizePropertyInfo = Int32
type AttrLabel LoggerMaxBodySizePropertyInfo = "max-body-size"
type AttrOrigin LoggerMaxBodySizePropertyInfo = Logger
attrGet _ = getLoggerMaxBodySize
attrSet _ = setLoggerMaxBodySize
attrConstruct _ = constructLoggerMaxBodySize
attrClear _ = undefined
instance O.HasAttributeList Logger
type instance O.AttributeList Logger = LoggerAttributeList
type LoggerAttributeList = ('[ '("level", LoggerLevelPropertyInfo), '("maxBodySize", LoggerMaxBodySizePropertyInfo)] :: [(Symbol, *)])
loggerLevel :: AttrLabelProxy "level"
loggerLevel = AttrLabelProxy
loggerMaxBodySize :: AttrLabelProxy "maxBodySize"
loggerMaxBodySize = AttrLabelProxy
type instance O.SignalList Logger = LoggerSignalList
type LoggerSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "soup_logger_new" soup_logger_new ::
CUInt ->
Int32 ->
IO (Ptr Logger)
loggerNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Soup.Enums.LoggerLogLevel
-> Int32
-> m Logger
loggerNew level maxBodySize = liftIO $ do
let level' = (fromIntegral . fromEnum) level
result <- soup_logger_new level' maxBodySize
checkUnexpectedReturnNULL "loggerNew" result
result' <- (wrapObject Logger) result
return result'
foreign import ccall "soup_logger_attach" soup_logger_attach ::
Ptr Logger ->
Ptr Soup.Session.Session ->
IO ()
loggerAttach ::
(B.CallStack.HasCallStack, MonadIO m, IsLogger a, Soup.Session.IsSession b) =>
a
-> b
-> m ()
loggerAttach logger session = liftIO $ do
logger' <- unsafeManagedPtrCastPtr logger
session' <- unsafeManagedPtrCastPtr session
soup_logger_attach logger' session'
touchManagedPtr logger
touchManagedPtr session
return ()
data LoggerAttachMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsLogger a, Soup.Session.IsSession b) => O.MethodInfo LoggerAttachMethodInfo a signature where
overloadedMethod _ = loggerAttach
foreign import ccall "soup_logger_detach" soup_logger_detach ::
Ptr Logger ->
Ptr Soup.Session.Session ->
IO ()
loggerDetach ::
(B.CallStack.HasCallStack, MonadIO m, IsLogger a, Soup.Session.IsSession b) =>
a
-> b
-> m ()
loggerDetach logger session = liftIO $ do
logger' <- unsafeManagedPtrCastPtr logger
session' <- unsafeManagedPtrCastPtr session
soup_logger_detach logger' session'
touchManagedPtr logger
touchManagedPtr session
return ()
data LoggerDetachMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsLogger a, Soup.Session.IsSession b) => O.MethodInfo LoggerDetachMethodInfo a signature where
overloadedMethod _ = loggerDetach
foreign import ccall "soup_logger_set_printer" soup_logger_set_printer ::
Ptr Logger ->
FunPtr Soup.Callbacks.C_LoggerPrinter ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO ()
loggerSetPrinter ::
(B.CallStack.HasCallStack, MonadIO m, IsLogger a) =>
a
-> Soup.Callbacks.LoggerPrinter
-> m ()
loggerSetPrinter logger printer = liftIO $ do
logger' <- unsafeManagedPtrCastPtr logger
printer' <- Soup.Callbacks.mk_LoggerPrinter (Soup.Callbacks.wrap_LoggerPrinter Nothing (Soup.Callbacks.drop_closures_LoggerPrinter printer))
let printerData = castFunPtrToPtr printer'
let destroy = safeFreeFunPtrPtr
soup_logger_set_printer logger' printer' printerData destroy
touchManagedPtr logger
return ()
data LoggerSetPrinterMethodInfo
instance (signature ~ (Soup.Callbacks.LoggerPrinter -> m ()), MonadIO m, IsLogger a) => O.MethodInfo LoggerSetPrinterMethodInfo a signature where
overloadedMethod _ = loggerSetPrinter
foreign import ccall "soup_logger_set_request_filter" soup_logger_set_request_filter ::
Ptr Logger ->
FunPtr Soup.Callbacks.C_LoggerFilter ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO ()
loggerSetRequestFilter ::
(B.CallStack.HasCallStack, MonadIO m, IsLogger a) =>
a
-> Soup.Callbacks.LoggerFilter
-> m ()
loggerSetRequestFilter logger requestFilter = liftIO $ do
logger' <- unsafeManagedPtrCastPtr logger
requestFilter' <- Soup.Callbacks.mk_LoggerFilter (Soup.Callbacks.wrap_LoggerFilter Nothing (Soup.Callbacks.drop_closures_LoggerFilter requestFilter))
let filterData = castFunPtrToPtr requestFilter'
let destroy = safeFreeFunPtrPtr
soup_logger_set_request_filter logger' requestFilter' filterData destroy
touchManagedPtr logger
return ()
data LoggerSetRequestFilterMethodInfo
instance (signature ~ (Soup.Callbacks.LoggerFilter -> m ()), MonadIO m, IsLogger a) => O.MethodInfo LoggerSetRequestFilterMethodInfo a signature where
overloadedMethod _ = loggerSetRequestFilter
foreign import ccall "soup_logger_set_response_filter" soup_logger_set_response_filter ::
Ptr Logger ->
FunPtr Soup.Callbacks.C_LoggerFilter ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO ()
loggerSetResponseFilter ::
(B.CallStack.HasCallStack, MonadIO m, IsLogger a) =>
a
-> Soup.Callbacks.LoggerFilter
-> m ()
loggerSetResponseFilter logger responseFilter = liftIO $ do
logger' <- unsafeManagedPtrCastPtr logger
responseFilter' <- Soup.Callbacks.mk_LoggerFilter (Soup.Callbacks.wrap_LoggerFilter Nothing (Soup.Callbacks.drop_closures_LoggerFilter responseFilter))
let filterData = castFunPtrToPtr responseFilter'
let destroy = safeFreeFunPtrPtr
soup_logger_set_response_filter logger' responseFilter' filterData destroy
touchManagedPtr logger
return ()
data LoggerSetResponseFilterMethodInfo
instance (signature ~ (Soup.Callbacks.LoggerFilter -> m ()), MonadIO m, IsLogger a) => O.MethodInfo LoggerSetResponseFilterMethodInfo a signature where
overloadedMethod _ = loggerSetResponseFilter