Copyright | Will Thompson and Iñaki García Etxebarria |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
GSocketAddressEnumerator
is an enumerator type for
SocketAddress
instances. It is returned by enumeration functions
such as socketConnectableEnumerate
, which returns a
GSocketAddressEnumerator
to list each SocketAddress
which could
be used to connect to that SocketConnectable
.
Enumeration is typically a blocking operation, so the asynchronous methods
socketAddressEnumeratorNextAsync
and
socketAddressEnumeratorNextFinish
should be used where
possible.
Each GSocketAddressEnumerator
can only be enumerated once. Once
socketAddressEnumeratorNext
has returned NULL
, further
enumeration with that GSocketAddressEnumerator
is not possible, and it can
be unreffed.
Synopsis
- newtype SocketAddressEnumerator = SocketAddressEnumerator (ManagedPtr SocketAddressEnumerator)
- class (GObject o, IsDescendantOf SocketAddressEnumerator o) => IsSocketAddressEnumerator o
- toSocketAddressEnumerator :: (MonadIO m, IsSocketAddressEnumerator o) => o -> m SocketAddressEnumerator
- socketAddressEnumeratorNext :: (HasCallStack, MonadIO m, IsSocketAddressEnumerator a, IsCancellable b) => a -> Maybe b -> m (Maybe SocketAddress)
- socketAddressEnumeratorNextAsync :: (HasCallStack, MonadIO m, IsSocketAddressEnumerator a, IsCancellable b) => a -> Maybe b -> Maybe AsyncReadyCallback -> m ()
- socketAddressEnumeratorNextFinish :: (HasCallStack, MonadIO m, IsSocketAddressEnumerator a, IsAsyncResult b) => a -> b -> m (Maybe SocketAddress)
Exported types
newtype SocketAddressEnumerator Source #
Memory-managed wrapper type.
Instances
Eq SocketAddressEnumerator Source # | |
Defined in GI.Gio.Objects.SocketAddressEnumerator | |
GObject SocketAddressEnumerator Source # | |
Defined in GI.Gio.Objects.SocketAddressEnumerator | |
ManagedPtrNewtype SocketAddressEnumerator Source # | |
TypedObject SocketAddressEnumerator Source # | |
Defined in GI.Gio.Objects.SocketAddressEnumerator | |
HasParentTypes SocketAddressEnumerator Source # | |
Defined in GI.Gio.Objects.SocketAddressEnumerator | |
IsGValue (Maybe SocketAddressEnumerator) Source # | Convert |
Defined in GI.Gio.Objects.SocketAddressEnumerator gvalueGType_ :: IO GType # gvalueSet_ :: Ptr GValue -> Maybe SocketAddressEnumerator -> IO () # gvalueGet_ :: Ptr GValue -> IO (Maybe SocketAddressEnumerator) # | |
type ParentTypes SocketAddressEnumerator Source # | |
Defined in GI.Gio.Objects.SocketAddressEnumerator type ParentTypes SocketAddressEnumerator = '[Object] |
class (GObject o, IsDescendantOf SocketAddressEnumerator o) => IsSocketAddressEnumerator o Source #
Type class for types which can be safely cast to SocketAddressEnumerator
, for instance with toSocketAddressEnumerator
.
Instances
(GObject o, IsDescendantOf SocketAddressEnumerator o) => IsSocketAddressEnumerator o Source # | |
Defined in GI.Gio.Objects.SocketAddressEnumerator |
toSocketAddressEnumerator :: (MonadIO m, IsSocketAddressEnumerator o) => o -> m SocketAddressEnumerator Source #
Cast to SocketAddressEnumerator
, for types for which this is known to be safe. For general casts, use castTo
.
Methods
Click to display all available methods, including inherited ones
Methods
bindProperty, bindPropertyFull, forceFloating, freezeNotify, getv, isFloating, next, nextAsync, nextFinish, notify, notifyByPspec, ref, refSink, runDispose, stealData, stealQdata, thawNotify, unref, watchClosure.
Getters
getData, getProperty, getQdata.
Setters
next
socketAddressEnumeratorNext Source #
:: (HasCallStack, MonadIO m, IsSocketAddressEnumerator a, IsCancellable b) | |
=> a |
|
-> Maybe b |
|
-> m (Maybe SocketAddress) | Returns: a |
Retrieves the next SocketAddress
from enumerator
. Note that this
may block for some amount of time. (Eg, a NetworkAddress
may need
to do a DNS lookup before it can return an address.) Use
socketAddressEnumeratorNextAsync
if you need to avoid
blocking.
If enumerator
is expected to yield addresses, but for some reason
is unable to (eg, because of a DNS error), then the first call to
socketAddressEnumeratorNext
will return an appropriate error
in *error
. However, if the first call to
socketAddressEnumeratorNext
succeeds, then any further
internal errors (other than cancellable
being triggered) will be
ignored.
nextAsync
socketAddressEnumeratorNextAsync Source #
:: (HasCallStack, MonadIO m, IsSocketAddressEnumerator a, IsCancellable b) | |
=> a |
|
-> Maybe b |
|
-> Maybe AsyncReadyCallback |
|
-> m () |
Asynchronously retrieves the next SocketAddress
from enumerator
and then calls callback
, which must call
socketAddressEnumeratorNextFinish
to get the result.
It is an error to call this multiple times before the previous callback has finished.
nextFinish
socketAddressEnumeratorNextFinish Source #
:: (HasCallStack, MonadIO m, IsSocketAddressEnumerator a, IsAsyncResult b) | |
=> a |
|
-> b |
|
-> m (Maybe SocketAddress) | Returns: a |
Retrieves the result of a completed call to
socketAddressEnumeratorNextAsync
. See
socketAddressEnumeratorNext
for more information about
error handling.