summaryrefslogtreecommitdiff
path: root/src/net.h
diff options
context:
space:
mode:
authorReiner Herrmann <reiner@reiner-h.de>2011-01-23 22:46:29 +0100
committerReiner Herrmann <reiner@reiner-h.de>2011-01-23 22:46:29 +0100
commit2bd0e560986c66406bae90ff44f2dd6d3fec17be (patch)
tree29aa4b7cb1831d7781a1a75f1db8ee2850a2a7ac /src/net.h
parentfff390715fff73f05639d3e5f96612a5a4fa82e8 (diff)
added generic net_send function and adapted functions it is using
Diffstat (limited to 'src/net.h')
-rw-r--r--src/net.h36
1 files changed, 24 insertions, 12 deletions
diff --git a/src/net.h b/src/net.h
index 52bb855..0caaa21 100644
--- a/src/net.h
+++ b/src/net.h
@@ -2,6 +2,7 @@
#define OXEN_NET_H
#include <stdint.h>
+#include <stdbool.h>
#include "player.h"
#include "hand.h"
#include "table_stacks.h"
@@ -20,7 +21,8 @@ typedef enum
msg_type_init_stacks = 0x3,
msg_type_selected_card = 0x4,
msg_type_selected_stack_c = 0x5,
- msg_type_selected_stack_s = 0x6
+ msg_type_selected_stack_s = 0x6,
+ msg_type_initial_stack = 0x7
} msg_type_t;
// Header format
@@ -37,26 +39,36 @@ typedef struct
uint8_t *payload;
} msg_t;
+// Socket list
+typedef struct
+{
+ uint8_t count;
+ int sockets[MAX_PLAYERS];
+} socket_list_t;
+
+
// generic receive function
-void* net_recv(int sock, msg_type_t wanted);
+bool net_recv(int sock, msg_type_t wanted);
+bool net_send(int sock, const msg_type_t type, void* param);
// Server side functions
int server_start(const char* port);
-int* server_get_players(int serversock, const uint8_t count);
-void server_start_game(int* clients, const uint8_t clientcount, const player_list* players);
-void server_deal_cards(int sock, const hand_t *h);
+void server_get_players(int serversock, socket_list_t* client_socks, const uint8_t count);
char* server_recv_hello(const uint8_t* payload, const uint8_t payload_len);
card* server_recv_selected_card(const uint8_t* payload, const uint8_t payload_len);
uint8_t* server_recv_selected_stack(const uint8_t* payload, const uint8_t payload_len);
-void server_send_selected_stack(int* clients, const uint8_t clientcount, const uint8_t stackindex);
+uint8_t server_send_start_game(uint8_t* payload, const uint8_t payload_len);
+uint8_t server_send_deal_cards(uint8_t* payload, const uint8_t payload_len, const void* param);
+uint8_t server_send_selected_stack(uint8_t* payload, const uint8_t payload_len);
+uint8_t server_send_initial_stacks(uint8_t* payload, const uint8_t payload_len);
// Client side functions
int client_connect_server(const char* host, const char* port);
-void client_hello(int sock, const char* username);
-void client_selected_card(int sock, const card c);
-void client_send_selected_stack(int sock, const uint8_t stackindex);
-void* client_recv_player_list(const uint8_t* payload, const uint8_t data_len);
-hand_t *client_recv_deal_cards(const uint8_t* payload, const uint8_t payload_len);
-uint8_t* client_recv_selected_stack(const uint8_t* payload, const uint8_t payload_len);
+uint8_t client_send_hello(uint8_t* payload, const uint8_t payload_len);
+uint8_t client_send_selected_card(uint8_t* payload, const uint8_t payload_len);
+uint8_t client_send_selected_stack(uint8_t* payload, const uint8_t payload_len);
+bool client_recv_player_list(const uint8_t* payload, const uint8_t data_len);
+bool client_recv_deal_cards(const uint8_t* payload, const uint8_t payload_len);
+bool client_recv_selected_stack(const uint8_t* payload, const uint8_t payload_len);
#endif // OXEN_NET_H