{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (garetxe@gmail.com) -} module GI.Soup.Objects.Logger ( -- * Exported types Logger(..) , LoggerK , toLogger , noLogger , -- * Methods -- ** loggerAttach loggerAttach , -- ** loggerDetach loggerDetach , -- ** loggerNew loggerNew , -- ** loggerSetPrinter loggerSetPrinter , -- ** loggerSetRequestFilter loggerSetRequestFilter , -- ** loggerSetResponseFilter loggerSetResponseFilter , ) where import Prelude () import Data.GI.Base.ShortPrelude import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import GI.Soup.Types import GI.Soup.Callbacks import qualified GI.GLib as GLib import qualified GI.GObject as GObject newtype Logger = Logger (ForeignPtr Logger) foreign import ccall "soup_logger_get_type" c_soup_logger_get_type :: IO GType type instance ParentTypes Logger = LoggerParentTypes type LoggerParentTypes = '[GObject.Object, SessionFeature] instance GObject Logger where gobjectIsInitiallyUnowned _ = False gobjectType _ = c_soup_logger_get_type class GObject o => LoggerK o instance (GObject o, IsDescendantOf Logger o) => LoggerK o toLogger :: LoggerK o => o -> IO Logger toLogger = unsafeCastTo Logger noLogger :: Maybe Logger noLogger = Nothing type instance AttributeList Logger = LoggerAttributeList type LoggerAttributeList = ('[ ] :: [(Symbol, *)]) type instance SignalList Logger = LoggerSignalList type LoggerSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)]) -- method Logger::new -- method type : Constructor -- Args : [Arg {argName = "level", argType = TInterface "Soup" "LoggerLogLevel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_body_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "level", argType = TInterface "Soup" "LoggerLogLevel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_body_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TInterface "Soup" "Logger" -- throws : False -- Skip return : False foreign import ccall "soup_logger_new" soup_logger_new :: CUInt -> -- level : TInterface "Soup" "LoggerLogLevel" Int32 -> -- max_body_size : TBasicType TInt32 IO (Ptr Logger) loggerNew :: (MonadIO m) => LoggerLogLevel -> -- level Int32 -> -- max_body_size m Logger loggerNew level max_body_size = liftIO $ do let level' = (fromIntegral . fromEnum) level result <- soup_logger_new level' max_body_size checkUnexpectedReturnNULL "soup_logger_new" result result' <- (wrapObject Logger) result return result' -- method Logger::attach -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "session", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "session", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "soup_logger_attach" soup_logger_attach :: Ptr Logger -> -- _obj : TInterface "Soup" "Logger" Ptr Session -> -- session : TInterface "Soup" "Session" IO () {-# DEPRECATED loggerAttach ["Use soup_session_add_feature() instead."]#-} loggerAttach :: (MonadIO m, LoggerK a, SessionK b) => a -> -- _obj b -> -- session m () loggerAttach _obj session = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let session' = unsafeManagedPtrCastPtr session soup_logger_attach _obj' session' touchManagedPtr _obj touchManagedPtr session return () -- method Logger::detach -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "session", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "session", argType = TInterface "Soup" "Session", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "soup_logger_detach" soup_logger_detach :: Ptr Logger -> -- _obj : TInterface "Soup" "Logger" Ptr Session -> -- session : TInterface "Soup" "Session" IO () {-# DEPRECATED loggerDetach ["Use soup_session_remove_feature() instead."]#-} loggerDetach :: (MonadIO m, LoggerK a, SessionK b) => a -> -- _obj b -> -- session m () loggerDetach _obj session = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj let session' = unsafeManagedPtrCastPtr session soup_logger_detach _obj' session' touchManagedPtr _obj touchManagedPtr session return () -- method Logger::set_printer -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "printer", argType = TInterface "Soup" "LoggerPrinter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "printer_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "printer", argType = TInterface "Soup" "LoggerPrinter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "soup_logger_set_printer" soup_logger_set_printer :: Ptr Logger -> -- _obj : TInterface "Soup" "Logger" FunPtr LoggerPrinterC -> -- printer : TInterface "Soup" "LoggerPrinter" Ptr () -> -- printer_data : TBasicType TVoid FunPtr GLib.DestroyNotifyC -> -- destroy : TInterface "GLib" "DestroyNotify" IO () loggerSetPrinter :: (MonadIO m, LoggerK a) => a -> -- _obj LoggerPrinter -> -- printer m () loggerSetPrinter _obj printer = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj printer' <- mkLoggerPrinter (loggerPrinterWrapper Nothing printer) let printer_data = castFunPtrToPtr printer' let destroy = safeFreeFunPtrPtr soup_logger_set_printer _obj' printer' printer_data destroy touchManagedPtr _obj return () -- method Logger::set_request_filter -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "request_filter", argType = TInterface "Soup" "LoggerFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "filter_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "request_filter", argType = TInterface "Soup" "LoggerFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "soup_logger_set_request_filter" soup_logger_set_request_filter :: Ptr Logger -> -- _obj : TInterface "Soup" "Logger" FunPtr LoggerFilterC -> -- request_filter : TInterface "Soup" "LoggerFilter" Ptr () -> -- filter_data : TBasicType TVoid FunPtr GLib.DestroyNotifyC -> -- destroy : TInterface "GLib" "DestroyNotify" IO () loggerSetRequestFilter :: (MonadIO m, LoggerK a) => a -> -- _obj LoggerFilter -> -- request_filter m () loggerSetRequestFilter _obj request_filter = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj request_filter' <- mkLoggerFilter (loggerFilterWrapper Nothing request_filter) let filter_data = castFunPtrToPtr request_filter' let destroy = safeFreeFunPtrPtr soup_logger_set_request_filter _obj' request_filter' filter_data destroy touchManagedPtr _obj return () -- method Logger::set_response_filter -- method type : OrdinaryMethod -- Args : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "response_filter", argType = TInterface "Soup" "LoggerFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "filter_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}] -- Lengths : [] -- hInArgs : [Arg {argName = "_obj", argType = TInterface "Soup" "Logger", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "response_filter", argType = TInterface "Soup" "LoggerFilter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}] -- returnType : TBasicType TVoid -- throws : False -- Skip return : False foreign import ccall "soup_logger_set_response_filter" soup_logger_set_response_filter :: Ptr Logger -> -- _obj : TInterface "Soup" "Logger" FunPtr LoggerFilterC -> -- response_filter : TInterface "Soup" "LoggerFilter" Ptr () -> -- filter_data : TBasicType TVoid FunPtr GLib.DestroyNotifyC -> -- destroy : TInterface "GLib" "DestroyNotify" IO () loggerSetResponseFilter :: (MonadIO m, LoggerK a) => a -> -- _obj LoggerFilter -> -- response_filter m () loggerSetResponseFilter _obj response_filter = liftIO $ do let _obj' = unsafeManagedPtrCastPtr _obj response_filter' <- mkLoggerFilter (loggerFilterWrapper Nothing response_filter) let filter_data = castFunPtrToPtr response_filter' let destroy = safeFreeFunPtrPtr soup_logger_set_response_filter _obj' response_filter' filter_data destroy touchManagedPtr _obj return ()