12 #ifndef GCOMM_SOCKET_HPP
13 #define GCOMM_SOCKET_HPP
15 #include "gcomm/datagram.hpp"
22 typedef const void* SocketId;
24 typedef boost::shared_ptr<Socket> SocketPtr;
56 virtual void connect(
const gu::URI& uri) = 0;
57 virtual void close() = 0;
59 virtual int send(
const Datagram& dg) = 0;
60 virtual void async_receive() = 0;
62 virtual size_t mtu()
const = 0;
63 virtual std::string local_addr()
const = 0;
64 virtual std::string remote_addr()
const = 0;
65 virtual State state()
const = 0;
66 virtual SocketId id()
const = 0;
89 virtual void listen(
const gu::URI& uri) = 0;
90 virtual std::string listen_addr()
const = 0;
91 virtual void close() = 0;
92 virtual State state()
const = 0;
93 virtual SocketPtr accept() = 0;
94 virtual SocketId id()
const = 0;
99 #endif // GCOMM_SOCKET_HPP
Socket(const gu::URI &uri)
Definition: socket.hpp:50
static const std::string OptMcastTTL
Definition: socket.hpp:48
static const std::string OptCRC32
Definition: socket.hpp:47
static const std::string OptIfLoop
Definition: socket.hpp:46
static const std::string OptNonBlocking
Definition: socket.hpp:44
static const std::string OptIfAddr
Definition: socket.hpp:45
Definition: socket.hpp:72
Definition: socket.hpp:29