/* * Copyright (c) 2014, 2015, 2016 Jonas 'Sortie' Termansen. * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * connection.h * Display server main loop. */ #ifndef SERVER_H #define SERVER_H #include #include struct connection; struct display; struct pollfd; struct server { struct display* display; const char* server_path; int server_fd; int tty_fd; int mouse_fd; struct connection** connections; size_t connections_used; size_t connections_length; struct pollfd* pfds; size_t pfds_count; }; void server_initialize(struct server* server, struct display* display); bool server_accept(struct server* server); size_t server_pfds_count(const struct server* server); void server_poll(struct server* server); void server_mainloop(struct server* server); #endif