Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
The Discoverer
is a utility object which allows to get as much
information as possible from one or many URIs.
It provides two APIs, allowing usage in blocking or non-blocking mode.
The blocking mode just requires calling discovererDiscoverUri
with the URI one wishes to discover.
The non-blocking mode requires a running MainLoop
iterating a
MainContext
, where one connects to the various signals, appends the
URIs to be processed (through discovererDiscoverUriAsync
) and then
asks for the discovery to begin (through discovererStart
).
By default this will use the GLib default main context unless you have
set a custom context using mainContextPushThreadDefault
.
All the information is returned in a DiscovererInfo
structure.
- newtype Discoverer = Discoverer (ManagedPtr Discoverer)
- class GObject o => IsDiscoverer o
- toDiscoverer :: IsDiscoverer o => o -> IO Discoverer
- noDiscoverer :: Maybe Discoverer
- data DiscovererDiscoverUriMethodInfo
- discovererDiscoverUri :: (HasCallStack, MonadIO m, IsDiscoverer a) => a -> Text -> m DiscovererInfo
- data DiscovererDiscoverUriAsyncMethodInfo
- discovererDiscoverUriAsync :: (HasCallStack, MonadIO m, IsDiscoverer a) => a -> Text -> m Bool
- discovererNew :: (HasCallStack, MonadIO m) => Word64 -> m Discoverer
- data DiscovererStartMethodInfo
- discovererStart :: (HasCallStack, MonadIO m, IsDiscoverer a) => a -> m ()
- data DiscovererStopMethodInfo
- discovererStop :: (HasCallStack, MonadIO m, IsDiscoverer a) => a -> m ()
- data DiscovererTimeoutPropertyInfo
- constructDiscovererTimeout :: IsDiscoverer o => Word64 -> IO (GValueConstruct o)
- discovererTimeout :: AttrLabelProxy "timeout"
- getDiscovererTimeout :: (MonadIO m, IsDiscoverer o) => o -> m Word64
- setDiscovererTimeout :: (MonadIO m, IsDiscoverer o) => o -> Word64 -> m ()
- type C_DiscovererDiscoveredCallback = Ptr () -> Ptr DiscovererInfo -> Ptr GError -> Ptr () -> IO ()
- type DiscovererDiscoveredCallback = DiscovererInfo -> GError -> IO ()
- data DiscovererDiscoveredSignalInfo
- afterDiscovererDiscovered :: (IsDiscoverer a, MonadIO m) => a -> DiscovererDiscoveredCallback -> m SignalHandlerId
- genClosure_DiscovererDiscovered :: DiscovererDiscoveredCallback -> IO Closure
- mk_DiscovererDiscoveredCallback :: C_DiscovererDiscoveredCallback -> IO (FunPtr C_DiscovererDiscoveredCallback)
- noDiscovererDiscoveredCallback :: Maybe DiscovererDiscoveredCallback
- onDiscovererDiscovered :: (IsDiscoverer a, MonadIO m) => a -> DiscovererDiscoveredCallback -> m SignalHandlerId
- wrap_DiscovererDiscoveredCallback :: DiscovererDiscoveredCallback -> Ptr () -> Ptr DiscovererInfo -> Ptr GError -> Ptr () -> IO ()
- type C_DiscovererFinishedCallback = Ptr () -> Ptr () -> IO ()
- type DiscovererFinishedCallback = IO ()
- data DiscovererFinishedSignalInfo
- afterDiscovererFinished :: (IsDiscoverer a, MonadIO m) => a -> DiscovererFinishedCallback -> m SignalHandlerId
- genClosure_DiscovererFinished :: DiscovererFinishedCallback -> IO Closure
- mk_DiscovererFinishedCallback :: C_DiscovererFinishedCallback -> IO (FunPtr C_DiscovererFinishedCallback)
- noDiscovererFinishedCallback :: Maybe DiscovererFinishedCallback
- onDiscovererFinished :: (IsDiscoverer a, MonadIO m) => a -> DiscovererFinishedCallback -> m SignalHandlerId
- wrap_DiscovererFinishedCallback :: DiscovererFinishedCallback -> Ptr () -> Ptr () -> IO ()
- type C_DiscovererSourceSetupCallback = Ptr () -> Ptr Element -> Ptr () -> IO ()
- type DiscovererSourceSetupCallback = Element -> IO ()
- data DiscovererSourceSetupSignalInfo
- afterDiscovererSourceSetup :: (IsDiscoverer a, MonadIO m) => a -> DiscovererSourceSetupCallback -> m SignalHandlerId
- genClosure_DiscovererSourceSetup :: DiscovererSourceSetupCallback -> IO Closure
- mk_DiscovererSourceSetupCallback :: C_DiscovererSourceSetupCallback -> IO (FunPtr C_DiscovererSourceSetupCallback)
- noDiscovererSourceSetupCallback :: Maybe DiscovererSourceSetupCallback
- onDiscovererSourceSetup :: (IsDiscoverer a, MonadIO m) => a -> DiscovererSourceSetupCallback -> m SignalHandlerId
- wrap_DiscovererSourceSetupCallback :: DiscovererSourceSetupCallback -> Ptr () -> Ptr Element -> Ptr () -> IO ()
- type C_DiscovererStartingCallback = Ptr () -> Ptr () -> IO ()
- type DiscovererStartingCallback = IO ()
- data DiscovererStartingSignalInfo
- afterDiscovererStarting :: (IsDiscoverer a, MonadIO m) => a -> DiscovererStartingCallback -> m SignalHandlerId
- genClosure_DiscovererStarting :: DiscovererStartingCallback -> IO Closure
- mk_DiscovererStartingCallback :: C_DiscovererStartingCallback -> IO (FunPtr C_DiscovererStartingCallback)
- noDiscovererStartingCallback :: Maybe DiscovererStartingCallback
- onDiscovererStarting :: (IsDiscoverer a, MonadIO m) => a -> DiscovererStartingCallback -> m SignalHandlerId
- wrap_DiscovererStartingCallback :: DiscovererStartingCallback -> Ptr () -> Ptr () -> IO ()
Exported types
newtype Discoverer Source #
GObject Discoverer Source # | |
IsObject Discoverer Source # | |
IsDiscoverer Discoverer Source # | |
((~) * info (ResolveDiscovererMethod t Discoverer), MethodInfo * info Discoverer p) => IsLabel t (Discoverer -> p) Source # | |
((~) * info (ResolveDiscovererMethod t Discoverer), MethodInfo * info Discoverer p) => IsLabelProxy t (Discoverer -> p) Source # | |
HasAttributeList * Discoverer Source # | |
type AttributeList Discoverer Source # | |
type SignalList Discoverer Source # | |
class GObject o => IsDiscoverer o Source #
toDiscoverer :: IsDiscoverer o => o -> IO Discoverer Source #
Methods
discoverUri
data DiscovererDiscoverUriMethodInfo Source #
((~) * signature (Text -> m DiscovererInfo), MonadIO m, IsDiscoverer a) => MethodInfo * DiscovererDiscoverUriMethodInfo a signature Source # | |
discovererDiscoverUri Source #
:: (HasCallStack, MonadIO m, IsDiscoverer a) | |
=> a |
|
-> Text |
|
-> m DiscovererInfo | Returns: the result of the scanning. Can be |
Synchronously discovers the given uri
.
A copy of uri
will be made internally, so the caller can safely free
afterwards.
discoverUriAsync
data DiscovererDiscoverUriAsyncMethodInfo Source #
((~) * signature (Text -> m Bool), MonadIO m, IsDiscoverer a) => MethodInfo * DiscovererDiscoverUriAsyncMethodInfo a signature Source # | |
discovererDiscoverUriAsync Source #
:: (HasCallStack, MonadIO m, IsDiscoverer a) | |
=> a |
|
-> Text |
|
-> m Bool | Returns: |
Appends the given uri
to the list of URIs to discoverer. The actual
discovery of the uri
will only take place if discovererStart
has
been called.
A copy of uri
will be made internally, so the caller can safely free
afterwards.
new
:: (HasCallStack, MonadIO m) | |
=> Word64 |
|
-> m Discoverer | Returns: The new |
Creates a new Discoverer
with the provided timeout.
start
data DiscovererStartMethodInfo Source #
((~) * signature (m ()), MonadIO m, IsDiscoverer a) => MethodInfo * DiscovererStartMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsDiscoverer a) | |
=> a |
|
-> m () |
Allow asynchronous discovering of URIs to take place.
A MainLoop
must be available for Discoverer
to properly work in
asynchronous mode.
stop
data DiscovererStopMethodInfo Source #
((~) * signature (m ()), MonadIO m, IsDiscoverer a) => MethodInfo * DiscovererStopMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsDiscoverer a) | |
=> a |
|
-> m () |
Stop the discovery of any pending URIs and clears the list of pending URIS (if any).
Properties
timeout
data DiscovererTimeoutPropertyInfo Source #
constructDiscovererTimeout :: IsDiscoverer o => Word64 -> IO (GValueConstruct o) Source #
discovererTimeout :: AttrLabelProxy "timeout" Source #
getDiscovererTimeout :: (MonadIO m, IsDiscoverer o) => o -> m Word64 Source #
setDiscovererTimeout :: (MonadIO m, IsDiscoverer o) => o -> Word64 -> m () Source #
Signals
discovered
type C_DiscovererDiscoveredCallback = Ptr () -> Ptr DiscovererInfo -> Ptr GError -> Ptr () -> IO () Source #
type DiscovererDiscoveredCallback = DiscovererInfo -> GError -> IO () Source #
afterDiscovererDiscovered :: (IsDiscoverer a, MonadIO m) => a -> DiscovererDiscoveredCallback -> m SignalHandlerId Source #
mk_DiscovererDiscoveredCallback :: C_DiscovererDiscoveredCallback -> IO (FunPtr C_DiscovererDiscoveredCallback) Source #
onDiscovererDiscovered :: (IsDiscoverer a, MonadIO m) => a -> DiscovererDiscoveredCallback -> m SignalHandlerId Source #
wrap_DiscovererDiscoveredCallback :: DiscovererDiscoveredCallback -> Ptr () -> Ptr DiscovererInfo -> Ptr GError -> Ptr () -> IO () Source #
finished
type DiscovererFinishedCallback = IO () Source #
afterDiscovererFinished :: (IsDiscoverer a, MonadIO m) => a -> DiscovererFinishedCallback -> m SignalHandlerId Source #
mk_DiscovererFinishedCallback :: C_DiscovererFinishedCallback -> IO (FunPtr C_DiscovererFinishedCallback) Source #
onDiscovererFinished :: (IsDiscoverer a, MonadIO m) => a -> DiscovererFinishedCallback -> m SignalHandlerId Source #
wrap_DiscovererFinishedCallback :: DiscovererFinishedCallback -> Ptr () -> Ptr () -> IO () Source #
sourceSetup
type DiscovererSourceSetupCallback = Element -> IO () Source #
afterDiscovererSourceSetup :: (IsDiscoverer a, MonadIO m) => a -> DiscovererSourceSetupCallback -> m SignalHandlerId Source #
mk_DiscovererSourceSetupCallback :: C_DiscovererSourceSetupCallback -> IO (FunPtr C_DiscovererSourceSetupCallback) Source #
onDiscovererSourceSetup :: (IsDiscoverer a, MonadIO m) => a -> DiscovererSourceSetupCallback -> m SignalHandlerId Source #
wrap_DiscovererSourceSetupCallback :: DiscovererSourceSetupCallback -> Ptr () -> Ptr Element -> Ptr () -> IO () Source #
starting
type DiscovererStartingCallback = IO () Source #
afterDiscovererStarting :: (IsDiscoverer a, MonadIO m) => a -> DiscovererStartingCallback -> m SignalHandlerId Source #
mk_DiscovererStartingCallback :: C_DiscovererStartingCallback -> IO (FunPtr C_DiscovererStartingCallback) Source #
onDiscovererStarting :: (IsDiscoverer a, MonadIO m) => a -> DiscovererStartingCallback -> m SignalHandlerId Source #
wrap_DiscovererStartingCallback :: DiscovererStartingCallback -> Ptr () -> Ptr () -> IO () Source #