glibmm: Gio::SignalSocket Class Reference

#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

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.