/* Exported: see ttt-socket.h for documentation. */
void
-ttt_socket_accept (int listen_socket, ttt_socket_dispatch_func_t dispatch)
+ttt_socket_accept (int listen_socket,
+ ttt_socket_accept_func_t accept,
+ void *closure)
{
int connected_socket;
connected_socket = _wait_for_connection (listen_socket);
- (dispatch) (connected_socket);
+ (accept) (closure, connected_socket);
+}
+
+/* Exported: see ttt-socket.h for documentation. */
+void
+ttt_socket_read (int socket,
+ void *buf,
+ size_t count)
+{
+ int bytes_read;
+ char *cbuf = buf;
+
+ while (count) {
+ bytes_read = xread (socket, cbuf, count);
+ cbuf += bytes_read;
+ count -= bytes_read;
+ }
+}
+
+/* Exported: see ttt-socket.h for documentation. */
+void
+ttt_socket_write (int socket,
+ const void *buf,
+ size_t count)
+{
+ int written;
+ const char *cbuf = buf;
+
+ while (count) {
+ written = xwrite (socket, cbuf, count);
+ cbuf += written;
+ count -= written;
+ }
}