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=Glib::RefPtr< Cancellable >(), int priority=Glib::PRIORITY_DEFAULT)
| Connects an I/O handler that watches a socket. More...

## Detailed Description

Since glibmm 2.42:

## Member Function Documentation

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 = `Glib::RefPtr< 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);

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());

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.