glibmm: Gio::SignalSocket Class Reference

glibmm 2.82.0

Public Member Functions | List of all members
Gio::SignalSocket Class Reference
Portable Network I/O Functionality

`#include <giomm/socketsource.h>`

## Public Member Functions
sigc::connection | connect (const sigc::slot< bool(Glib::IOCondition)> & slot, const Glib::RefPtr< Socket > &socket, Glib::IOCondition condition, const Glib::RefPtr< Cancellable > &cancellable={}, int priority=Glib::PRIORITY_DEFAULT)
| Connects an I/O handler that watches a socket.

## Detailed Description

Since glibmm 2.42:

## Member Function Documentation

## ◆ connect()

sigc::connection Gio::SignalSocket::connect | ( | const sigc::slot< bool(Glib::IOCondition)> & | slot,
|  | const Glib::RefPtr< Socket > & | socket,
|  | Glib::IOCondition | condition,
|  | const Glib::RefPtr< Cancellable > & | cancellable = `{}`,
|  | int | priority = `Glib::PRIORITY_DEFAULT`
| ) |  |

Connects an I/O handler that watches a socket.

bool io_handler(Glib::IOCondition io_condition) { ... }
Gio::signal_socket().connect(sigc::ptr_fun(&io_handler), socket, Glib::IO_IN | Glib::IO_OUT);
Gio::SignalSocket::connect
sigc::connection connect(const sigc::slot< bool(Glib::IOCondition)> &slot, const Glib::RefPtr< Socket > &socket, Glib::IOCondition condition, const Glib::RefPtr< Cancellable > &cancellable={}, int priority=Glib::PRIORITY_DEFAULT)
Connects an I/O handler that watches a socket.
Gio::signal_socket
SignalSocket signal_socket(const Glib::RefPtr< Glib::MainContext > &context={})
Convenience socket signal.
Glib::IOCondition
IOCondition
A bitwise combination representing a condition to watch for on an event source.
Definition iochannel.h:237
Glib::IOCondition::IO_OUT
@ IO_OUT
Data can be written (without blocking).
Glib::IOCondition::IO_IN
@ IO_IN
There is data to read.
sigc::ptr_fun
decltype(auto) ptr_fun(T_return(*func)(T_args...))

is equivalent to:

bool io_handler(Glib::IOCondition io_condition) { ... }
const auto socket_source = Gio::SocketSource::create(socket, Glib::IO_IN | Glib::IO_OUT);
socket_source->connect(sigc::ptr_fun(&io_handler));
socket_source->attach(Glib::MainContext::get_default());
Glib::MainContext::get_default
static Glib::RefPtr< MainContext > get_default()
Returns the global default main context.
Glib::Source::create
static Glib::RefPtr< Source > create()

This method is not thread-safe. You should call it, or manipulate the returned sigc::connection object, only from the thread where the SignalSocket object's MainContext runs.

Since glibmm 2.42:

Parameters

  slot | A slot to call when polling socket results in an event that matches condition. The event will be passed as a parameter to slot. If `io_handler()` returns `false` the handler is disconnected.
  socket | The Socket object to watch.
  condition | The conditions to watch for.
  cancellable | A Cancellable object which can be used to cancel the source, which will cause the source to trigger, reporting the current condition (which is likely 0 unless cancellation happened at the same time as a condition change). You can check for this in the callback using Cancellable::is_cancelled().
  priority | The priority of the new event source.

Returns
  A connection handle, which can be used to disconnect the handler.