gi-gio-2.0.19: Gio bindings

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

GI.Gio.Objects.SocketAddress

Contents

- Exported types
- Methods
  - getFamily
  - getNativeSize
  - newFromNative
  - toNative
- Properties
  - family

Description

`SocketAddress` is the equivalent of struct sockaddr in the BSD sockets API. This is an abstract class; use `InetSocketAddress` for internet sockets, or `UnixSocketAddress` for UNIX domain sockets.

Synopsis

- newtype SocketAddress = SocketAddress (ManagedPtr SocketAddress)
- class GObject o => IsSocketAddress o
- toSocketAddress :: (MonadIO m, IsSocketAddress o) => o -> m SocketAddress
- noSocketAddress :: Maybe SocketAddress
- socketAddressGetFamily :: (HasCallStack, MonadIO m, IsSocketAddress a) => a -> m SocketFamily
- socketAddressGetNativeSize :: (HasCallStack, MonadIO m, IsSocketAddress a) => a -> m Int64
- socketAddressNewFromNative :: (HasCallStack, MonadIO m) => Ptr () -> Word64 -> m SocketAddress
- socketAddressToNative :: (HasCallStack, MonadIO m, IsSocketAddress a) => a -> Ptr () -> Word64 -> m ()
- getSocketAddressFamily :: (MonadIO m, IsSocketAddress o) => o -> m SocketFamily

# Exported types

newtype SocketAddress Source #

Memory-managed wrapper type.

Constructors

SocketAddress (ManagedPtr SocketAddress) |

Instances

GObject SocketAddress Source # |
Instance details Defined in GI.Gio.Objects.SocketAddress Methods gobjectType :: SocketAddress -> IO GType Source #
IsObject SocketAddress Source # |
Instance details Defined in GI.Gio.Objects.SocketAddress
IsSocketConnectable SocketAddress Source # |
Instance details Defined in GI.Gio.Objects.SocketAddress
IsSocketAddress SocketAddress Source # |
Instance details Defined in GI.Gio.Objects.SocketAddress

class GObject o => IsSocketAddress o Source #

Type class for types which can be safely cast to `SocketAddress`, for instance with `toSocketAddress`.

Instances

(GObject a, (UnknownAncestorError SocketAddress a :: Constraint)) => IsSocketAddress a Source # |
Instance details Defined in GI.Gio.Objects.SocketAddress
IsSocketAddress InetSocketAddress Source # |
Instance details Defined in GI.Gio.Objects.InetSocketAddress
IsSocketAddress ProxyAddress Source # |
Instance details Defined in GI.Gio.Objects.ProxyAddress
IsSocketAddress SocketAddress Source # |
Instance details Defined in GI.Gio.Objects.SocketAddress
IsSocketAddress UnixSocketAddress Source # |
Instance details Defined in GI.Gio.Objects.UnixSocketAddress

toSocketAddress :: (MonadIO m, IsSocketAddress o) => o -> m SocketAddress Source #

Cast to `SocketAddress`, for types for which this is known to be safe. For general casts, use `castTo`.

noSocketAddress :: Maybe SocketAddress Source #

A convenience alias for `Nothing` :: `Maybe` `SocketAddress`.

# Methods

## getFamily

socketAddressGetFamily Source #

Arguments

:: (HasCallStack, MonadIO m, IsSocketAddress a) |
=> a | `address`: a `SocketAddress`
-> m SocketFamily | Returns: the socket family type of `address`

Gets the socket family type of `address`.

Since: 2.22

## getNativeSize

socketAddressGetNativeSize Source #

Arguments

:: (HasCallStack, MonadIO m, IsSocketAddress a) |
=> a | `address`: a `SocketAddress`
-> m Int64 | Returns: the size of the native struct sockaddr that `address` represents

Gets the size of `address`'s native struct sockaddr. You can use this to allocate memory to pass to `socketAddressToNative`.

Since: 2.22

## newFromNative

socketAddressNewFromNative Source #

Arguments

:: (HasCallStack, MonadIO m) |
=> Ptr () | `native`: a pointer to a struct sockaddr
-> Word64 | `len`: the size of the memory location pointed to by `native`
-> m SocketAddress | Returns: a new `SocketAddress` if `native` could successfully be converted, otherwise `Nothing`

Creates a `SocketAddress` subclass corresponding to the native struct sockaddr `native`.

Since: 2.22

## toNative

socketAddressToNative Source #

Arguments

:: (HasCallStack, MonadIO m, IsSocketAddress a) |
=> a | `address`: a `SocketAddress`
-> Ptr () | `dest`: a pointer to a memory location that will contain the native struct sockaddr
-> Word64 | `destlen`: the size of `dest`. Must be at least as large as `socketAddressGetNativeSize`
-> m () | (Can throw `GError`)

Converts a `SocketAddress` to a native struct sockaddr, which can be passed to low-level functions like `connect()` or `bind()`.

If not enough space is available, a `IOErrorEnumNoSpace` error is returned. If the address type is not known on the system then a `IOErrorEnumNotSupported` error is returned.

Since: 2.22

# Properties

## family

No description available in the introspection data.

getSocketAddressFamily :: (MonadIO m, IsSocketAddress o) => o -> m SocketFamily Source #

Get the value of the “`family`” property. When overloading is enabled, this is equivalent to

    get socketAddress #family