18 #ifndef SHEVEK_SOCKET_HH
19 #define SHEVEK_SOCKET_HH
21 #include <sys/types.h>
22 #include <sys/socket.h>
23 #include <netinet/in.h>
26 #include <sigc++/sigc++.h>
44 static Glib::RefPtr <socket>
create (Glib::RefPtr <Glib::MainContext> main = Glib::MainContext::get_default () );
50 void listen_avahi (std::string
const &service, Glib::ustring
const &protocol, Glib::ustring
const &name,
listen_t cb,
unsigned queue = 10);
59 void listen (std::string
const &port,
listen_t cb,
unsigned queue = 10);
63 void connect_tcp (std::string
const &host, std::string
const &service);
73 void connect (std::string
const &port);
75 void accept (Glib::RefPtr <socket> sock);
86 socket (Glib::RefPtr <Glib::MainContext> main);
93 static int l_service_to_port (std::string
const &service);
95 std::string l_get_socket_info (
struct sockaddr_in *addr,
98 void l_finish_disconnect ();
110 Glib::RefPtr <avahi> m_avahi;
114 #endif // defined SHEVEK_SOCKET_HH
Use normal files with the fd class.
Definition: file.hh:26
std::string get_own_info(bool numeric=false) const
Get info about our side of the connection.
void connect_unix(std::string const &unix_name)
Connect to a UNIX socket. Use connect instead.
sigc::slot1< bool, std::string & > read_t
Function pointer to call when fd is ready for reading.
Definition: fd.hh:36
void listen_unix(std::string const &file, listen_t cb, unsigned queue=10)
Listen for new connections on a UNIX socket. Use listen instead.
void connect_avahi(avahi::browser::owner const &target, avahi::browser::details const &details=avahi::browser::details())
Connect to an avahi TCP socket. Use connect instead.
void listen(std::string const &port, listen_t cb, unsigned queue=10)
Listen for new connections.
sigc::slot0< void > listen_t
New connection callback type.
Definition: socket.hh:42
Use a unix-domain, tcp or avahi network connection with shevek::fd.
Definition: socket.hh:36
Information about a discovered server.
Definition: avahi.hh:101
The fd class is a generic wrapper for a file descriptor to use it in the Glib event loop...
Definition: fd.hh:29
void connect(std::string const &port)
Connect to a socket.
void connect_tcp(std::string const &host, std::string const &service)
Connect to a TCP socket. Use connect instead.
void listen_avahi(std::string const &service, Glib::ustring const &protocol, Glib::ustring const &name, listen_t cb, unsigned queue=10)
Listen for new connections on a TCP socket, and register it with avahi. Use listen instead...
virtual ~socket()
Destructor.
static Glib::RefPtr< socket > create(Glib::RefPtr< Glib::MainContext > main=Glib::MainContext::get_default())
Create a new socket.
std::string get_peer_info(bool numeric=false) const
Get information about the other side of a connection.
void disconnect()
Disconnect the socket without reconnecting.
void accept(Glib::RefPtr< socket > sock)
Accept a connection (only allowed on a listening socket).
Details about a discovered service. These are internally created and may be examined by the applicati...
Definition: avahi.hh:79
sigc::signal0< void > disconnect_t
Disconnect signal type.
Definition: socket.hh:40
disconnect_t signal_disconnect()
Schedule a function to be called when the socket is disconnected.
void listen_tcp(std::string const &service, listen_t cb, unsigned queue=10)
Listen for new connections on a TCP socket. Use listen instead.
socket(Glib::RefPtr< Glib::MainContext > main)
Constructor.