module GI.Soup.Objects.Server
(
Server(..) ,
ServerK ,
toServer ,
noServer ,
serverAcceptIostream ,
serverAddAuthDomain ,
serverAddEarlyHandler ,
serverAddHandler ,
serverAddWebsocketHandler ,
serverDisconnect ,
serverGetAsyncContext ,
serverGetListener ,
serverGetListeners ,
serverGetPort ,
serverGetUris ,
serverIsHttps ,
serverListen ,
serverListenAll ,
serverListenFd ,
serverListenLocal ,
serverListenSocket ,
serverPauseMessage ,
serverQuit ,
serverRemoveAuthDomain ,
serverRemoveHandler ,
serverRun ,
serverRunAsync ,
serverSetSslCertFile ,
serverUnpauseMessage ,
ServerAsyncContextPropertyInfo ,
constructServerAsyncContext ,
getServerAsyncContext ,
ServerHttpAliasesPropertyInfo ,
constructServerHttpAliases ,
getServerHttpAliases ,
setServerHttpAliases ,
ServerHttpsAliasesPropertyInfo ,
constructServerHttpsAliases ,
getServerHttpsAliases ,
setServerHttpsAliases ,
ServerInterfacePropertyInfo ,
constructServerInterface ,
getServerInterface ,
ServerPortPropertyInfo ,
constructServerPort ,
getServerPort ,
ServerRawPathsPropertyInfo ,
constructServerRawPaths ,
getServerRawPaths ,
ServerServerHeaderPropertyInfo ,
constructServerServerHeader ,
getServerServerHeader ,
setServerServerHeader ,
ServerSslCertFilePropertyInfo ,
constructServerSslCertFile ,
getServerSslCertFile ,
ServerSslKeyFilePropertyInfo ,
constructServerSslKeyFile ,
getServerSslKeyFile ,
ServerTlsCertificatePropertyInfo ,
constructServerTlsCertificate ,
getServerTlsCertificate ,
ServerRequestAbortedCallback ,
ServerRequestAbortedCallbackC ,
ServerRequestAbortedSignalInfo ,
afterServerRequestAborted ,
mkServerRequestAbortedCallback ,
noServerRequestAbortedCallback ,
onServerRequestAborted ,
serverRequestAbortedCallbackWrapper ,
serverRequestAbortedClosure ,
ServerRequestFinishedCallback ,
ServerRequestFinishedCallbackC ,
ServerRequestFinishedSignalInfo ,
afterServerRequestFinished ,
mkServerRequestFinishedCallback ,
noServerRequestFinishedCallback ,
onServerRequestFinished ,
serverRequestFinishedCallbackWrapper ,
serverRequestFinishedClosure ,
ServerRequestReadCallback ,
ServerRequestReadCallbackC ,
ServerRequestReadSignalInfo ,
afterServerRequestRead ,
mkServerRequestReadCallback ,
noServerRequestReadCallback ,
onServerRequestRead ,
serverRequestReadCallbackWrapper ,
serverRequestReadClosure ,
ServerRequestStartedCallback ,
ServerRequestStartedCallbackC ,
ServerRequestStartedSignalInfo ,
afterServerRequestStarted ,
mkServerRequestStartedCallback ,
noServerRequestStartedCallback ,
onServerRequestStarted ,
serverRequestStartedCallbackWrapper ,
serverRequestStartedClosure ,
) 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
import qualified GI.Gio as Gio
newtype Server = Server (ForeignPtr Server)
foreign import ccall "soup_server_get_type"
c_soup_server_get_type :: IO GType
type instance ParentTypes Server = ServerParentTypes
type ServerParentTypes = '[GObject.Object]
instance GObject Server where
gobjectIsInitiallyUnowned _ = False
gobjectType _ = c_soup_server_get_type
class GObject o => ServerK o
instance (GObject o, IsDescendantOf Server o) => ServerK o
toServer :: ServerK o => o -> IO Server
toServer = unsafeCastTo Server
noServer :: Maybe Server
noServer = Nothing
type ServerRequestAbortedCallback =
Message ->
ClientContext ->
IO ()
noServerRequestAbortedCallback :: Maybe ServerRequestAbortedCallback
noServerRequestAbortedCallback = Nothing
type ServerRequestAbortedCallbackC =
Ptr () ->
Ptr Message ->
Ptr ClientContext ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mkServerRequestAbortedCallback :: ServerRequestAbortedCallbackC -> IO (FunPtr ServerRequestAbortedCallbackC)
serverRequestAbortedClosure :: ServerRequestAbortedCallback -> IO Closure
serverRequestAbortedClosure cb = newCClosure =<< mkServerRequestAbortedCallback wrapped
where wrapped = serverRequestAbortedCallbackWrapper cb
serverRequestAbortedCallbackWrapper ::
ServerRequestAbortedCallback ->
Ptr () ->
Ptr Message ->
Ptr ClientContext ->
Ptr () ->
IO ()
serverRequestAbortedCallbackWrapper _cb _ message client _ = do
message' <- (newObject Message) message
client' <- (newBoxed ClientContext) client
_cb message' client'
onServerRequestAborted :: (GObject a, MonadIO m) => a -> ServerRequestAbortedCallback -> m SignalHandlerId
onServerRequestAborted obj cb = liftIO $ connectServerRequestAborted obj cb SignalConnectBefore
afterServerRequestAborted :: (GObject a, MonadIO m) => a -> ServerRequestAbortedCallback -> m SignalHandlerId
afterServerRequestAborted obj cb = connectServerRequestAborted obj cb SignalConnectAfter
connectServerRequestAborted :: (GObject a, MonadIO m) =>
a -> ServerRequestAbortedCallback -> SignalConnectMode -> m SignalHandlerId
connectServerRequestAborted obj cb after = liftIO $ do
cb' <- mkServerRequestAbortedCallback (serverRequestAbortedCallbackWrapper cb)
connectSignalFunPtr obj "request-aborted" cb' after
type ServerRequestFinishedCallback =
Message ->
ClientContext ->
IO ()
noServerRequestFinishedCallback :: Maybe ServerRequestFinishedCallback
noServerRequestFinishedCallback = Nothing
type ServerRequestFinishedCallbackC =
Ptr () ->
Ptr Message ->
Ptr ClientContext ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mkServerRequestFinishedCallback :: ServerRequestFinishedCallbackC -> IO (FunPtr ServerRequestFinishedCallbackC)
serverRequestFinishedClosure :: ServerRequestFinishedCallback -> IO Closure
serverRequestFinishedClosure cb = newCClosure =<< mkServerRequestFinishedCallback wrapped
where wrapped = serverRequestFinishedCallbackWrapper cb
serverRequestFinishedCallbackWrapper ::
ServerRequestFinishedCallback ->
Ptr () ->
Ptr Message ->
Ptr ClientContext ->
Ptr () ->
IO ()
serverRequestFinishedCallbackWrapper _cb _ message client _ = do
message' <- (newObject Message) message
client' <- (newBoxed ClientContext) client
_cb message' client'
onServerRequestFinished :: (GObject a, MonadIO m) => a -> ServerRequestFinishedCallback -> m SignalHandlerId
onServerRequestFinished obj cb = liftIO $ connectServerRequestFinished obj cb SignalConnectBefore
afterServerRequestFinished :: (GObject a, MonadIO m) => a -> ServerRequestFinishedCallback -> m SignalHandlerId
afterServerRequestFinished obj cb = connectServerRequestFinished obj cb SignalConnectAfter
connectServerRequestFinished :: (GObject a, MonadIO m) =>
a -> ServerRequestFinishedCallback -> SignalConnectMode -> m SignalHandlerId
connectServerRequestFinished obj cb after = liftIO $ do
cb' <- mkServerRequestFinishedCallback (serverRequestFinishedCallbackWrapper cb)
connectSignalFunPtr obj "request-finished" cb' after
type ServerRequestReadCallback =
Message ->
ClientContext ->
IO ()
noServerRequestReadCallback :: Maybe ServerRequestReadCallback
noServerRequestReadCallback = Nothing
type ServerRequestReadCallbackC =
Ptr () ->
Ptr Message ->
Ptr ClientContext ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mkServerRequestReadCallback :: ServerRequestReadCallbackC -> IO (FunPtr ServerRequestReadCallbackC)
serverRequestReadClosure :: ServerRequestReadCallback -> IO Closure
serverRequestReadClosure cb = newCClosure =<< mkServerRequestReadCallback wrapped
where wrapped = serverRequestReadCallbackWrapper cb
serverRequestReadCallbackWrapper ::
ServerRequestReadCallback ->
Ptr () ->
Ptr Message ->
Ptr ClientContext ->
Ptr () ->
IO ()
serverRequestReadCallbackWrapper _cb _ message client _ = do
message' <- (newObject Message) message
client' <- (newBoxed ClientContext) client
_cb message' client'
onServerRequestRead :: (GObject a, MonadIO m) => a -> ServerRequestReadCallback -> m SignalHandlerId
onServerRequestRead obj cb = liftIO $ connectServerRequestRead obj cb SignalConnectBefore
afterServerRequestRead :: (GObject a, MonadIO m) => a -> ServerRequestReadCallback -> m SignalHandlerId
afterServerRequestRead obj cb = connectServerRequestRead obj cb SignalConnectAfter
connectServerRequestRead :: (GObject a, MonadIO m) =>
a -> ServerRequestReadCallback -> SignalConnectMode -> m SignalHandlerId
connectServerRequestRead obj cb after = liftIO $ do
cb' <- mkServerRequestReadCallback (serverRequestReadCallbackWrapper cb)
connectSignalFunPtr obj "request-read" cb' after
type ServerRequestStartedCallback =
Message ->
ClientContext ->
IO ()
noServerRequestStartedCallback :: Maybe ServerRequestStartedCallback
noServerRequestStartedCallback = Nothing
type ServerRequestStartedCallbackC =
Ptr () ->
Ptr Message ->
Ptr ClientContext ->
Ptr () ->
IO ()
foreign import ccall "wrapper"
mkServerRequestStartedCallback :: ServerRequestStartedCallbackC -> IO (FunPtr ServerRequestStartedCallbackC)
serverRequestStartedClosure :: ServerRequestStartedCallback -> IO Closure
serverRequestStartedClosure cb = newCClosure =<< mkServerRequestStartedCallback wrapped
where wrapped = serverRequestStartedCallbackWrapper cb
serverRequestStartedCallbackWrapper ::
ServerRequestStartedCallback ->
Ptr () ->
Ptr Message ->
Ptr ClientContext ->
Ptr () ->
IO ()
serverRequestStartedCallbackWrapper _cb _ message client _ = do
message' <- (newObject Message) message
client' <- (newBoxed ClientContext) client
_cb message' client'
onServerRequestStarted :: (GObject a, MonadIO m) => a -> ServerRequestStartedCallback -> m SignalHandlerId
onServerRequestStarted obj cb = liftIO $ connectServerRequestStarted obj cb SignalConnectBefore
afterServerRequestStarted :: (GObject a, MonadIO m) => a -> ServerRequestStartedCallback -> m SignalHandlerId
afterServerRequestStarted obj cb = connectServerRequestStarted obj cb SignalConnectAfter
connectServerRequestStarted :: (GObject a, MonadIO m) =>
a -> ServerRequestStartedCallback -> SignalConnectMode -> m SignalHandlerId
connectServerRequestStarted obj cb after = liftIO $ do
cb' <- mkServerRequestStartedCallback (serverRequestStartedCallbackWrapper cb)
connectSignalFunPtr obj "request-started" cb' after
getServerAsyncContext :: (MonadIO m, ServerK o) => o -> m (Ptr ())
getServerAsyncContext obj = liftIO $ getObjectPropertyPtr obj "async-context"
constructServerAsyncContext :: (Ptr ()) -> IO ([Char], GValue)
constructServerAsyncContext val = constructObjectPropertyPtr "async-context" val
data ServerAsyncContextPropertyInfo
instance AttrInfo ServerAsyncContextPropertyInfo where
type AttrAllowedOps ServerAsyncContextPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerAsyncContextPropertyInfo = (~) (Ptr ())
type AttrBaseTypeConstraint ServerAsyncContextPropertyInfo = ServerK
type AttrGetType ServerAsyncContextPropertyInfo = (Ptr ())
type AttrLabel ServerAsyncContextPropertyInfo = "Server::async-context"
attrGet _ = getServerAsyncContext
attrSet _ = undefined
attrConstruct _ = constructServerAsyncContext
getServerHttpAliases :: (MonadIO m, ServerK o) => o -> m [T.Text]
getServerHttpAliases obj = liftIO $ getObjectPropertyStringArray obj "http-aliases"
setServerHttpAliases :: (MonadIO m, ServerK o) => o -> [T.Text] -> m ()
setServerHttpAliases obj val = liftIO $ setObjectPropertyStringArray obj "http-aliases" val
constructServerHttpAliases :: [T.Text] -> IO ([Char], GValue)
constructServerHttpAliases val = constructObjectPropertyStringArray "http-aliases" val
data ServerHttpAliasesPropertyInfo
instance AttrInfo ServerHttpAliasesPropertyInfo where
type AttrAllowedOps ServerHttpAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerHttpAliasesPropertyInfo = (~) [T.Text]
type AttrBaseTypeConstraint ServerHttpAliasesPropertyInfo = ServerK
type AttrGetType ServerHttpAliasesPropertyInfo = [T.Text]
type AttrLabel ServerHttpAliasesPropertyInfo = "Server::http-aliases"
attrGet _ = getServerHttpAliases
attrSet _ = setServerHttpAliases
attrConstruct _ = constructServerHttpAliases
getServerHttpsAliases :: (MonadIO m, ServerK o) => o -> m [T.Text]
getServerHttpsAliases obj = liftIO $ getObjectPropertyStringArray obj "https-aliases"
setServerHttpsAliases :: (MonadIO m, ServerK o) => o -> [T.Text] -> m ()
setServerHttpsAliases obj val = liftIO $ setObjectPropertyStringArray obj "https-aliases" val
constructServerHttpsAliases :: [T.Text] -> IO ([Char], GValue)
constructServerHttpsAliases val = constructObjectPropertyStringArray "https-aliases" val
data ServerHttpsAliasesPropertyInfo
instance AttrInfo ServerHttpsAliasesPropertyInfo where
type AttrAllowedOps ServerHttpsAliasesPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerHttpsAliasesPropertyInfo = (~) [T.Text]
type AttrBaseTypeConstraint ServerHttpsAliasesPropertyInfo = ServerK
type AttrGetType ServerHttpsAliasesPropertyInfo = [T.Text]
type AttrLabel ServerHttpsAliasesPropertyInfo = "Server::https-aliases"
attrGet _ = getServerHttpsAliases
attrSet _ = setServerHttpsAliases
attrConstruct _ = constructServerHttpsAliases
getServerInterface :: (MonadIO m, ServerK o) => o -> m Address
getServerInterface obj = liftIO $ getObjectPropertyObject obj "interface" Address
constructServerInterface :: (AddressK a) => a -> IO ([Char], GValue)
constructServerInterface val = constructObjectPropertyObject "interface" val
data ServerInterfacePropertyInfo
instance AttrInfo ServerInterfacePropertyInfo where
type AttrAllowedOps ServerInterfacePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerInterfacePropertyInfo = AddressK
type AttrBaseTypeConstraint ServerInterfacePropertyInfo = ServerK
type AttrGetType ServerInterfacePropertyInfo = Address
type AttrLabel ServerInterfacePropertyInfo = "Server::interface"
attrGet _ = getServerInterface
attrSet _ = undefined
attrConstruct _ = constructServerInterface
getServerPort :: (MonadIO m, ServerK o) => o -> m Word32
getServerPort obj = liftIO $ getObjectPropertyCUInt obj "port"
constructServerPort :: Word32 -> IO ([Char], GValue)
constructServerPort val = constructObjectPropertyCUInt "port" val
data ServerPortPropertyInfo
instance AttrInfo ServerPortPropertyInfo where
type AttrAllowedOps ServerPortPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerPortPropertyInfo = (~) Word32
type AttrBaseTypeConstraint ServerPortPropertyInfo = ServerK
type AttrGetType ServerPortPropertyInfo = Word32
type AttrLabel ServerPortPropertyInfo = "Server::port"
attrGet _ = getServerPort
attrSet _ = undefined
attrConstruct _ = constructServerPort
getServerRawPaths :: (MonadIO m, ServerK o) => o -> m Bool
getServerRawPaths obj = liftIO $ getObjectPropertyBool obj "raw-paths"
constructServerRawPaths :: Bool -> IO ([Char], GValue)
constructServerRawPaths val = constructObjectPropertyBool "raw-paths" val
data ServerRawPathsPropertyInfo
instance AttrInfo ServerRawPathsPropertyInfo where
type AttrAllowedOps ServerRawPathsPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerRawPathsPropertyInfo = (~) Bool
type AttrBaseTypeConstraint ServerRawPathsPropertyInfo = ServerK
type AttrGetType ServerRawPathsPropertyInfo = Bool
type AttrLabel ServerRawPathsPropertyInfo = "Server::raw-paths"
attrGet _ = getServerRawPaths
attrSet _ = undefined
attrConstruct _ = constructServerRawPaths
getServerServerHeader :: (MonadIO m, ServerK o) => o -> m T.Text
getServerServerHeader obj = liftIO $ getObjectPropertyString obj "server-header"
setServerServerHeader :: (MonadIO m, ServerK o) => o -> T.Text -> m ()
setServerServerHeader obj val = liftIO $ setObjectPropertyString obj "server-header" val
constructServerServerHeader :: T.Text -> IO ([Char], GValue)
constructServerServerHeader val = constructObjectPropertyString "server-header" val
data ServerServerHeaderPropertyInfo
instance AttrInfo ServerServerHeaderPropertyInfo where
type AttrAllowedOps ServerServerHeaderPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerServerHeaderPropertyInfo = (~) T.Text
type AttrBaseTypeConstraint ServerServerHeaderPropertyInfo = ServerK
type AttrGetType ServerServerHeaderPropertyInfo = T.Text
type AttrLabel ServerServerHeaderPropertyInfo = "Server::server-header"
attrGet _ = getServerServerHeader
attrSet _ = setServerServerHeader
attrConstruct _ = constructServerServerHeader
getServerSslCertFile :: (MonadIO m, ServerK o) => o -> m T.Text
getServerSslCertFile obj = liftIO $ getObjectPropertyString obj "ssl-cert-file"
constructServerSslCertFile :: T.Text -> IO ([Char], GValue)
constructServerSslCertFile val = constructObjectPropertyString "ssl-cert-file" val
data ServerSslCertFilePropertyInfo
instance AttrInfo ServerSslCertFilePropertyInfo where
type AttrAllowedOps ServerSslCertFilePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerSslCertFilePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint ServerSslCertFilePropertyInfo = ServerK
type AttrGetType ServerSslCertFilePropertyInfo = T.Text
type AttrLabel ServerSslCertFilePropertyInfo = "Server::ssl-cert-file"
attrGet _ = getServerSslCertFile
attrSet _ = undefined
attrConstruct _ = constructServerSslCertFile
getServerSslKeyFile :: (MonadIO m, ServerK o) => o -> m T.Text
getServerSslKeyFile obj = liftIO $ getObjectPropertyString obj "ssl-key-file"
constructServerSslKeyFile :: T.Text -> IO ([Char], GValue)
constructServerSslKeyFile val = constructObjectPropertyString "ssl-key-file" val
data ServerSslKeyFilePropertyInfo
instance AttrInfo ServerSslKeyFilePropertyInfo where
type AttrAllowedOps ServerSslKeyFilePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerSslKeyFilePropertyInfo = (~) T.Text
type AttrBaseTypeConstraint ServerSslKeyFilePropertyInfo = ServerK
type AttrGetType ServerSslKeyFilePropertyInfo = T.Text
type AttrLabel ServerSslKeyFilePropertyInfo = "Server::ssl-key-file"
attrGet _ = getServerSslKeyFile
attrSet _ = undefined
attrConstruct _ = constructServerSslKeyFile
getServerTlsCertificate :: (MonadIO m, ServerK o) => o -> m Gio.TlsCertificate
getServerTlsCertificate obj = liftIO $ getObjectPropertyObject obj "tls-certificate" Gio.TlsCertificate
constructServerTlsCertificate :: (Gio.TlsCertificateK a) => a -> IO ([Char], GValue)
constructServerTlsCertificate val = constructObjectPropertyObject "tls-certificate" val
data ServerTlsCertificatePropertyInfo
instance AttrInfo ServerTlsCertificatePropertyInfo where
type AttrAllowedOps ServerTlsCertificatePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
type AttrSetTypeConstraint ServerTlsCertificatePropertyInfo = Gio.TlsCertificateK
type AttrBaseTypeConstraint ServerTlsCertificatePropertyInfo = ServerK
type AttrGetType ServerTlsCertificatePropertyInfo = Gio.TlsCertificate
type AttrLabel ServerTlsCertificatePropertyInfo = "Server::tls-certificate"
attrGet _ = getServerTlsCertificate
attrSet _ = undefined
attrConstruct _ = constructServerTlsCertificate
type instance AttributeList Server = ServerAttributeList
type ServerAttributeList = ('[ '("async-context", ServerAsyncContextPropertyInfo), '("http-aliases", ServerHttpAliasesPropertyInfo), '("https-aliases", ServerHttpsAliasesPropertyInfo), '("interface", ServerInterfacePropertyInfo), '("port", ServerPortPropertyInfo), '("raw-paths", ServerRawPathsPropertyInfo), '("server-header", ServerServerHeaderPropertyInfo), '("ssl-cert-file", ServerSslCertFilePropertyInfo), '("ssl-key-file", ServerSslKeyFilePropertyInfo), '("tls-certificate", ServerTlsCertificatePropertyInfo)] :: [(Symbol, *)])
data ServerRequestAbortedSignalInfo
instance SignalInfo ServerRequestAbortedSignalInfo where
type HaskellCallbackType ServerRequestAbortedSignalInfo = ServerRequestAbortedCallback
connectSignal _ = connectServerRequestAborted
data ServerRequestFinishedSignalInfo
instance SignalInfo ServerRequestFinishedSignalInfo where
type HaskellCallbackType ServerRequestFinishedSignalInfo = ServerRequestFinishedCallback
connectSignal _ = connectServerRequestFinished
data ServerRequestReadSignalInfo
instance SignalInfo ServerRequestReadSignalInfo where
type HaskellCallbackType ServerRequestReadSignalInfo = ServerRequestReadCallback
connectSignal _ = connectServerRequestRead
data ServerRequestStartedSignalInfo
instance SignalInfo ServerRequestStartedSignalInfo where
type HaskellCallbackType ServerRequestStartedSignalInfo = ServerRequestStartedCallback
connectSignal _ = connectServerRequestStarted
type instance SignalList Server = ServerSignalList
type ServerSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("request-aborted", ServerRequestAbortedSignalInfo), '("request-finished", ServerRequestFinishedSignalInfo), '("request-read", ServerRequestReadSignalInfo), '("request-started", ServerRequestStartedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
foreign import ccall "soup_server_accept_iostream" soup_server_accept_iostream ::
Ptr Server ->
Ptr Gio.IOStream ->
Ptr Gio.SocketAddress ->
Ptr Gio.SocketAddress ->
Ptr (Ptr GError) ->
IO CInt
serverAcceptIostream ::
(MonadIO m, ServerK a, Gio.IOStreamK b, Gio.SocketAddressK c, Gio.SocketAddressK d) =>
a ->
b ->
Maybe (c) ->
Maybe (d) ->
m ()
serverAcceptIostream _obj stream local_addr remote_addr = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let stream' = unsafeManagedPtrCastPtr stream
maybeLocal_addr <- case local_addr of
Nothing -> return nullPtr
Just jLocal_addr -> do
let jLocal_addr' = unsafeManagedPtrCastPtr jLocal_addr
return jLocal_addr'
maybeRemote_addr <- case remote_addr of
Nothing -> return nullPtr
Just jRemote_addr -> do
let jRemote_addr' = unsafeManagedPtrCastPtr jRemote_addr
return jRemote_addr'
onException (do
_ <- propagateGError $ soup_server_accept_iostream _obj' stream' maybeLocal_addr maybeRemote_addr
touchManagedPtr _obj
touchManagedPtr stream
whenJust local_addr touchManagedPtr
whenJust remote_addr touchManagedPtr
return ()
) (do
return ()
)
foreign import ccall "soup_server_add_auth_domain" soup_server_add_auth_domain ::
Ptr Server ->
Ptr AuthDomain ->
IO ()
serverAddAuthDomain ::
(MonadIO m, ServerK a, AuthDomainK b) =>
a ->
b ->
m ()
serverAddAuthDomain _obj auth_domain = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let auth_domain' = unsafeManagedPtrCastPtr auth_domain
soup_server_add_auth_domain _obj' auth_domain'
touchManagedPtr _obj
touchManagedPtr auth_domain
return ()
foreign import ccall "soup_server_add_early_handler" soup_server_add_early_handler ::
Ptr Server ->
CString ->
FunPtr ServerCallbackC ->
Ptr () ->
FunPtr GLib.DestroyNotifyC ->
IO ()
serverAddEarlyHandler ::
(MonadIO m, ServerK a) =>
a ->
Maybe (T.Text) ->
ServerCallback ->
m ()
serverAddEarlyHandler _obj path callback = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybePath <- case path of
Nothing -> return nullPtr
Just jPath -> do
jPath' <- textToCString jPath
return jPath'
callback' <- mkServerCallback (serverCallbackWrapper Nothing callback)
let user_data = castFunPtrToPtr callback'
let destroy = safeFreeFunPtrPtr
soup_server_add_early_handler _obj' maybePath callback' user_data destroy
touchManagedPtr _obj
freeMem maybePath
return ()
foreign import ccall "soup_server_add_handler" soup_server_add_handler ::
Ptr Server ->
CString ->
FunPtr ServerCallbackC ->
Ptr () ->
FunPtr GLib.DestroyNotifyC ->
IO ()
serverAddHandler ::
(MonadIO m, ServerK a) =>
a ->
Maybe (T.Text) ->
ServerCallback ->
m ()
serverAddHandler _obj path callback = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybePath <- case path of
Nothing -> return nullPtr
Just jPath -> do
jPath' <- textToCString jPath
return jPath'
callback' <- mkServerCallback (serverCallbackWrapper Nothing callback)
let user_data = castFunPtrToPtr callback'
let destroy = safeFreeFunPtrPtr
soup_server_add_handler _obj' maybePath callback' user_data destroy
touchManagedPtr _obj
freeMem maybePath
return ()
foreign import ccall "soup_server_add_websocket_handler" soup_server_add_websocket_handler ::
Ptr Server ->
CString ->
CString ->
Ptr CString ->
FunPtr ServerWebsocketCallbackC ->
Ptr () ->
FunPtr GLib.DestroyNotifyC ->
IO ()
serverAddWebsocketHandler ::
(MonadIO m, ServerK a) =>
a ->
Maybe (T.Text) ->
Maybe (T.Text) ->
Maybe ([T.Text]) ->
ServerWebsocketCallback ->
m ()
serverAddWebsocketHandler _obj path origin protocols callback = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
maybePath <- case path of
Nothing -> return nullPtr
Just jPath -> do
jPath' <- textToCString jPath
return jPath'
maybeOrigin <- case origin of
Nothing -> return nullPtr
Just jOrigin -> do
jOrigin' <- textToCString jOrigin
return jOrigin'
maybeProtocols <- case protocols of
Nothing -> return nullPtr
Just jProtocols -> do
jProtocols' <- packZeroTerminatedUTF8CArray jProtocols
return jProtocols'
callback' <- mkServerWebsocketCallback (serverWebsocketCallbackWrapper Nothing callback)
let user_data = castFunPtrToPtr callback'
let destroy = safeFreeFunPtrPtr
soup_server_add_websocket_handler _obj' maybePath maybeOrigin maybeProtocols callback' user_data destroy
touchManagedPtr _obj
freeMem maybePath
freeMem maybeOrigin
mapZeroTerminatedCArray freeMem maybeProtocols
freeMem maybeProtocols
return ()
foreign import ccall "soup_server_disconnect" soup_server_disconnect ::
Ptr Server ->
IO ()
serverDisconnect ::
(MonadIO m, ServerK a) =>
a ->
m ()
serverDisconnect _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_server_disconnect _obj'
touchManagedPtr _obj
return ()
foreign import ccall "soup_server_get_async_context" soup_server_get_async_context ::
Ptr Server ->
IO (Ptr GLib.MainContext)
serverGetAsyncContext ::
(MonadIO m, ServerK a) =>
a ->
m GLib.MainContext
serverGetAsyncContext _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_server_get_async_context _obj'
checkUnexpectedReturnNULL "soup_server_get_async_context" result
result' <- (newBoxed GLib.MainContext) result
touchManagedPtr _obj
return result'
foreign import ccall "soup_server_get_listener" soup_server_get_listener ::
Ptr Server ->
IO (Ptr Socket)
serverGetListener ::
(MonadIO m, ServerK a) =>
a ->
m Socket
serverGetListener _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_server_get_listener _obj'
checkUnexpectedReturnNULL "soup_server_get_listener" result
result' <- (newObject Socket) result
touchManagedPtr _obj
return result'
foreign import ccall "soup_server_get_listeners" soup_server_get_listeners ::
Ptr Server ->
IO (Ptr (GSList (Ptr Gio.Socket)))
serverGetListeners ::
(MonadIO m, ServerK a) =>
a ->
m [Gio.Socket]
serverGetListeners _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_server_get_listeners _obj'
checkUnexpectedReturnNULL "soup_server_get_listeners" result
result' <- unpackGSList result
result'' <- mapM (newObject Gio.Socket) result'
g_slist_free result
touchManagedPtr _obj
return result''
foreign import ccall "soup_server_get_port" soup_server_get_port ::
Ptr Server ->
IO Word32
serverGetPort ::
(MonadIO m, ServerK a) =>
a ->
m Word32
serverGetPort _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_server_get_port _obj'
touchManagedPtr _obj
return result
foreign import ccall "soup_server_get_uris" soup_server_get_uris ::
Ptr Server ->
IO (Ptr (GSList (Ptr URI)))
serverGetUris ::
(MonadIO m, ServerK a) =>
a ->
m [URI]
serverGetUris _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_server_get_uris _obj'
checkUnexpectedReturnNULL "soup_server_get_uris" result
result' <- unpackGSList result
result'' <- mapM (wrapBoxed URI) result'
g_slist_free result
touchManagedPtr _obj
return result''
foreign import ccall "soup_server_is_https" soup_server_is_https ::
Ptr Server ->
IO CInt
serverIsHttps ::
(MonadIO m, ServerK a) =>
a ->
m Bool
serverIsHttps _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
result <- soup_server_is_https _obj'
let result' = (/= 0) result
touchManagedPtr _obj
return result'
foreign import ccall "soup_server_listen" soup_server_listen ::
Ptr Server ->
Ptr Gio.SocketAddress ->
CUInt ->
Ptr (Ptr GError) ->
IO CInt
serverListen ::
(MonadIO m, ServerK a, Gio.SocketAddressK b) =>
a ->
b ->
[ServerListenOptions] ->
m ()
serverListen _obj address options = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let address' = unsafeManagedPtrCastPtr address
let options' = gflagsToWord options
onException (do
_ <- propagateGError $ soup_server_listen _obj' address' options'
touchManagedPtr _obj
touchManagedPtr address
return ()
) (do
return ()
)
foreign import ccall "soup_server_listen_all" soup_server_listen_all ::
Ptr Server ->
Word32 ->
CUInt ->
Ptr (Ptr GError) ->
IO CInt
serverListenAll ::
(MonadIO m, ServerK a) =>
a ->
Word32 ->
[ServerListenOptions] ->
m ()
serverListenAll _obj port options = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let options' = gflagsToWord options
onException (do
_ <- propagateGError $ soup_server_listen_all _obj' port options'
touchManagedPtr _obj
return ()
) (do
return ()
)
foreign import ccall "soup_server_listen_fd" soup_server_listen_fd ::
Ptr Server ->
Int32 ->
CUInt ->
Ptr (Ptr GError) ->
IO CInt
serverListenFd ::
(MonadIO m, ServerK a) =>
a ->
Int32 ->
[ServerListenOptions] ->
m ()
serverListenFd _obj fd options = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let options' = gflagsToWord options
onException (do
_ <- propagateGError $ soup_server_listen_fd _obj' fd options'
touchManagedPtr _obj
return ()
) (do
return ()
)
foreign import ccall "soup_server_listen_local" soup_server_listen_local ::
Ptr Server ->
Word32 ->
CUInt ->
Ptr (Ptr GError) ->
IO CInt
serverListenLocal ::
(MonadIO m, ServerK a) =>
a ->
Word32 ->
[ServerListenOptions] ->
m ()
serverListenLocal _obj port options = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let options' = gflagsToWord options
onException (do
_ <- propagateGError $ soup_server_listen_local _obj' port options'
touchManagedPtr _obj
return ()
) (do
return ()
)
foreign import ccall "soup_server_listen_socket" soup_server_listen_socket ::
Ptr Server ->
Ptr Gio.Socket ->
CUInt ->
Ptr (Ptr GError) ->
IO CInt
serverListenSocket ::
(MonadIO m, ServerK a, Gio.SocketK b) =>
a ->
b ->
[ServerListenOptions] ->
m ()
serverListenSocket _obj socket options = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let socket' = unsafeManagedPtrCastPtr socket
let options' = gflagsToWord options
onException (do
_ <- propagateGError $ soup_server_listen_socket _obj' socket' options'
touchManagedPtr _obj
touchManagedPtr socket
return ()
) (do
return ()
)
foreign import ccall "soup_server_pause_message" soup_server_pause_message ::
Ptr Server ->
Ptr Message ->
IO ()
serverPauseMessage ::
(MonadIO m, ServerK a, MessageK b) =>
a ->
b ->
m ()
serverPauseMessage _obj msg = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let msg' = unsafeManagedPtrCastPtr msg
soup_server_pause_message _obj' msg'
touchManagedPtr _obj
touchManagedPtr msg
return ()
foreign import ccall "soup_server_quit" soup_server_quit ::
Ptr Server ->
IO ()
serverQuit ::
(MonadIO m, ServerK a) =>
a ->
m ()
serverQuit _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_server_quit _obj'
touchManagedPtr _obj
return ()
foreign import ccall "soup_server_remove_auth_domain" soup_server_remove_auth_domain ::
Ptr Server ->
Ptr AuthDomain ->
IO ()
serverRemoveAuthDomain ::
(MonadIO m, ServerK a, AuthDomainK b) =>
a ->
b ->
m ()
serverRemoveAuthDomain _obj auth_domain = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let auth_domain' = unsafeManagedPtrCastPtr auth_domain
soup_server_remove_auth_domain _obj' auth_domain'
touchManagedPtr _obj
touchManagedPtr auth_domain
return ()
foreign import ccall "soup_server_remove_handler" soup_server_remove_handler ::
Ptr Server ->
CString ->
IO ()
serverRemoveHandler ::
(MonadIO m, ServerK a) =>
a ->
T.Text ->
m ()
serverRemoveHandler _obj path = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
path' <- textToCString path
soup_server_remove_handler _obj' path'
touchManagedPtr _obj
freeMem path'
return ()
foreign import ccall "soup_server_run" soup_server_run ::
Ptr Server ->
IO ()
serverRun ::
(MonadIO m, ServerK a) =>
a ->
m ()
serverRun _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_server_run _obj'
touchManagedPtr _obj
return ()
foreign import ccall "soup_server_run_async" soup_server_run_async ::
Ptr Server ->
IO ()
serverRunAsync ::
(MonadIO m, ServerK a) =>
a ->
m ()
serverRunAsync _obj = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
soup_server_run_async _obj'
touchManagedPtr _obj
return ()
foreign import ccall "soup_server_set_ssl_cert_file" soup_server_set_ssl_cert_file ::
Ptr Server ->
CString ->
CString ->
Ptr (Ptr GError) ->
IO CInt
serverSetSslCertFile ::
(MonadIO m, ServerK a) =>
a ->
T.Text ->
T.Text ->
m ()
serverSetSslCertFile _obj ssl_cert_file ssl_key_file = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
ssl_cert_file' <- textToCString ssl_cert_file
ssl_key_file' <- textToCString ssl_key_file
onException (do
_ <- propagateGError $ soup_server_set_ssl_cert_file _obj' ssl_cert_file' ssl_key_file'
touchManagedPtr _obj
freeMem ssl_cert_file'
freeMem ssl_key_file'
return ()
) (do
freeMem ssl_cert_file'
freeMem ssl_key_file'
)
foreign import ccall "soup_server_unpause_message" soup_server_unpause_message ::
Ptr Server ->
Ptr Message ->
IO ()
serverUnpauseMessage ::
(MonadIO m, ServerK a, MessageK b) =>
a ->
b ->
m ()
serverUnpauseMessage _obj msg = liftIO $ do
let _obj' = unsafeManagedPtrCastPtr _obj
let msg' = unsafeManagedPtrCastPtr msg
soup_server_unpause_message _obj' msg'
touchManagedPtr _obj
touchManagedPtr msg
return ()