/***************************************************************************** * ___ __ __ ___ _ __ * * / _ \\ \/ // _ \ '_ \ * * | (_) |> <| __/ | | | * * \___//_/\_\\___|_| |_| * * * * The card game * * * * Copyright (C) 2011, Reiner Herrmann * * Mario Kilies * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 3 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program. If not, see . * * * *****************************************************************************/ #ifndef OXEN_SERVER_H #define OXEN_SERVER_H #include #include #include "comm.h" #include "../player.h" #include "../hand.h" // Socket list typedef struct { uint8_t count; int sockets[MAX_PLAYERS]; uint8_t player_ids[MAX_PLAYERS]; } socket_list_t; int socket_for_player_id(const socket_list_t *client_socks, const player_id_t pid); int server_start(const char* addr, const char* port); void server_get_players(int serversock, socket_list_t* client_socks, const uint8_t count); void server_prep_hello(msg_t *m, const player_list_entry_t* player); void server_prep_start_game(msg_t *m); void server_prep_deal_hand(msg_t *m, const hand_t *h); void server_prep_selected_stack(msg_t *m); void server_prep_initial_stacks(msg_t *m); void server_prep_selected_card_all(msg_t *m); void server_prep_next_action(msg_t *m); bool server_parse_hello(const msg_t *m); bool server_parse_selected_card(const msg_t *m); bool server_parse_selected_stack(const msg_t *m); #endif // OXEN_SERVER_H