|
My Project
|
#include "board.h"#include "move.h"#include "options.h"#include "util.h"#include "ui.h"#include <assert.h>#include <ctype.h>#include <errno.h>#include <stdarg.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/types.h>#include <unistd.h>#include <sys/socket.h>#include <netdb.h>#include <netinet/tcp.h>Go to the source code of this file.
Classes | |
| struct | Text |
| struct | GGSClock |
| struct | GGSPlayer |
| struct | GGSMatchType |
| struct | GGSMatchOff |
| struct | GGSMatchOn |
| struct | GGSRequest |
| struct | GGSBoard |
| struct | GGSAdmin |
| struct | GGSEvent |
| struct | GGSClient |
Macros | |
| #define | WORD_SIZE 256 |
| #define | GGS_BOARD_SIZE 256 |
| #define | MOVELIST_SIZE 256 |
Typedefs | |
| typedef struct Text | Text |
| typedef struct GGSClock | GGSClock |
| typedef struct GGSPlayer | GGSPlayer |
| typedef struct GGSMatchType | GGSMatchType |
| typedef struct GGSMatchOff | GGSMatchOff |
| typedef struct GGSMatchOn | GGSMatchOn |
| typedef struct GGSRequest | GGSRequest |
| typedef struct GGSBoard | GGSBoard |
| typedef struct GGSAdmin | GGSAdmin |
| typedef struct GGSEvent | GGSEvent |
| typedef struct GGSClient | GGSClient |
Functions | |
| static void | text_init (Text *text) |
| text_init | |
| static void | text_add_line (Text *text, const char *line) |
| text_add_line | |
| static void | text_print (Text *text, FILE *f) |
| text_print | |
| static void | text_free (Text *text) |
| text_free | |
| static char * | ggs_parse_line (const char *buffer, char **line) |
| ggs_parse_line | |
| static char * | ggs_parse_text (const char *buffer, Text *text) |
| ggs_parse_text | |
| static bool | ggs_parse_int (int *value, const char *word) |
| ggs_parse_int | |
| static bool | ggs_parse_double (double *value, const char *word) |
| ggs_parse_double | |
| static bool | ggs_parse_move (int *move, const char *word) |
| ggs_parse_move | |
| static bool | ggs_parse_time (int *time, const char *word) |
| ggs_parse_move | |
| static bool | ggs_parse_clock (GGSClock *ggsclock, const char *line) |
| ggs_parse_clock | |
| static bool | ggs_player_set (GGSPlayer *player, const char *name, const char *rating) |
| ggs_player_set | |
| static void | ggs_match_type_set (GGSMatchType *type, const char *word) |
| ggs_match_type_set | |
| static void | ggs_player_free (GGSPlayer *player) |
| ggs_player_free | |
| static void | ggs_MBR_free (void *v) |
| ggs_MBR_free | |
| static bool | ggs_has_player (GGSPlayer *player, const char *me) |
| ggs_match_check_destination | |
| static bool | ggs_request (GGSRequest *request, Text *text) |
| ggs_request | |
| static bool | ggs_match_on (GGSMatchOn *match, Text *text) |
| ggs_match_on | |
| static bool | ggs_match_off (GGSMatchOff *match, Text *text) |
| ggs_match_off | |
| static bool | ggs_board (GGSBoard *board, Text *text) |
| ggs_board | |
| static bool | ggs_os_on (Text *text) |
| ggs_os_on | |
| static bool | ggs_os_off (Text *text) |
| ggs_os_off | |
| static bool | ggs_saio_delay (Text *text, long long *delay) |
| ggs_saio_delay | |
| static int | ggs_admin (GGSAdmin *admin, Text *text) |
| ggs_admin | |
| static bool | ggs_ready (Text *text) |
| ggs_ready | |
| static bool | ggs_alert (Text *text) |
| ggs_alert | |
| static bool | ggs_login (Text *text) |
| ggs_login | |
| static bool | ggs_password (Text *text) |
| ggs_password | |
| static void * | ggs_event_loop (void *v) |
| ggs_event_loop | |
| static void | ggs_event_init (GGSEvent *event) |
| ggs_event_init | |
| static void | ggs_event_free (GGSEvent *event) |
| ggs_event_free | |
| static bool | ggs_event_peek (GGSEvent *event, Text *text) |
| ggs_event_peek | |
| static void | ggs_client_free (GGSClient *client) |
| ggs_client_free | |
| static void | ggs_client_send (GGSClient *client, const char *fmt,...) |
| ggs_client_send | |
| static void | ggs_client_refresh (GGSClient *client) |
| ggs_client_refresh | |
| static void | ui_login (UI *ui) |
| ui_login | |
| static void | ui_ggs_ponder (UI *ui, int turn) |
| ui_ggs_ponder | |
| static void | ui_ggs_play (UI *ui, int turn) |
| ui_ggs_play | |
| static void | ui_ggs_join (UI *ui) |
| ui_ggs_join | |
| static void | ui_ggs_update (UI *ui) |
| ui_ggs_update | |
| void | ui_init_ggs (UI *ui) |
| ui_init_ggs | |
| void | ui_loop_ggs (UI *ui) |
| ui_loop_ggs | |
| void | ui_free_ggs (UI *ui) |
| ui_free_ggs | |
Variables | |
| static Log | ggs_log [1] |
| static char | admin_list [][16] = {"delorme", "dan", "mic", "romano", "HCyrano", "romelica", ""} |
| static const GGSClock | GGS_CLOCK_INI = {0, 0, 0, 0, 0, 0, 0, 0, 0} |
| static const GGSMatchType | GGS_MATCH_TYPE_INI = {0, 0, 0, 0, 0, 0, 0, 0} |
A ggs client in C language.
| #define GGS_BOARD_SIZE 256 |
Board Size
| #define MOVELIST_SIZE 256 |
Move list size
| #define WORD_SIZE 256 |
Word size
| typedef struct GGSAdmin GGSAdmin |
| typedef struct GGSBoard GGSBoard |
| typedef struct GGSClient GGSClient |
| typedef struct GGSClock GGSClock |
GGS clock (to play a game)
| typedef struct GGSEvent GGSEvent |
| typedef struct GGSMatchOff GGSMatchOff |
| typedef struct GGSMatchOn GGSMatchOn |
| typedef struct GGSMatchType GGSMatchType |
Match type description
| typedef struct GGSPlayer GGSPlayer |
GGS player
| typedef struct GGSRequest GGSRequest |
| typedef struct Text Text |
Text (set of lines) representation
ggs_admin
Parse an admin command from a GGS input text. Admin are authorised people (see list above) that can interact with Edax. Usually, edax will repeat the command to GGS.
| admin | An authorised person. |
| text | GGS input text. |
|
static |
ggs_alert
Parse a "ALERT" from a GGS input text.
| text | GGS input text. |
ggs_board
Parse a "GGS board" from a GGS input text.
| board | GGS board. |
| text | GGS input text. |
|
static |
ggs_client_free
Free the GGS client structure.
| client | GGS client. |
|
static |
ggs_client_refresh
Periodically send a message to the GGS server. This is a workaround to avoid spurious deconnection from GGS.
| client | GGS client. |
|
static |
ggs_client_send
Send a message to the GGS server. This function uses vnsprintf with some workaround for MS-Windows incorrect behaviour.
| client | GGS client. |
| fmt | Text format. |
| ... | other args. |
|
static |
|
static |
|
static |
ggs_event_loop
GGS event loop. Read all inputs from GGS within a thread.
| v | Event. |
|
static |
ggs_match_check_destination
Check if Edax is concerned by the match.
| player | GGS player. |
| me | Edax's login name. |
|
static |
ggs_login
Parse a login request from a GGS input text.
| text | GGS input text. |
|
static |
ggs_match_off
Parse a "match off" from a GGS input text.
| match | GGS match off. |
| text | GGS input text. |
|
static |
ggs_match_on
Parse a "match on" from a GGS input text.
| match | GGS match on. |
| text | GGS input text. |
|
static |
ggs_match_type_set
Translate input word into a type of match.
| type | GGS match type. |
| word | Word. |
|
static |
ggs_MBR_free
Free a GGS MatchOn/Off / Board / Request structure.
| v | GGS match/Board or Request structure. |
|
static |
ggs_os_off
Parse a "os off" from a GGS input text. PS: os = (o)thello (s)ervice
| text | GGS input text. |
|
static |
ggs_os_on
Parse a "os on" from a GGS input text. PS: os = (o)thello (s)ervice
| text | GGS input text. |
|
static |
ggs_parse_clock
Translate input word into a GGS clock time.
| ggsclock | GGS clock. |
| line | Text. |
|
static |
ggs_parse_double
Translate input word into a double.
| value | double. |
| word | Word. |
|
static |
ggs_parse_int
Translate input word into an integer.
| value | integer. |
| word | Word. |
|
static |
ggs_parse_line
Parse a ('
' terminated) line from a buffer.
| buffer | buffer. |
| line | Newly allocated line of text. |
|
static |
ggs_parse_move
Translate input word into a move.
| move | Move. |
| word | Word. |
|
static |
ggs_parse_text
Parse a text (ie a set of lines) from a buffer.
| buffer | Buffer. |
| text | Text. |
|
static |
ggs_parse_move
Translate input word into time (as ms).
| time | Time. |
| word | Word. |
|
static |
ggs_password
Parse a login password from a GGS input text.
| text | GGS input text. |
|
static |
ggs_player_free
Free a GGS player structure.
| player | GGS player. |
|
static |
ggs_player_set
Set player's name and rating.
| player | GGS player. |
| name | Name. |
| rating | Rating. |
|
static |
ggs_ready
Parse a "READY" from a GGS input text.
| text | GGS input text. |
|
static |
ggs_request
Parse a request from a GGS input text.
| request | GGS request. |
| text | GGS input text. |
|
static |
ggs_saio_delay
Parse a "saio" from a GGS input text. When Saio is building is book, it tells when it will be available again. Edax will automatically re-start asking him to play again at the right moment.
| text | GGS input text. |
| delay | Time delay (in ms). |
|
static |
|
static |
|
static |
| void ui_free_ggs | ( | UI * | ui | ) |
ui_free_ggs
Free GGS.
| ui | User Interface. |
|
static |
ui_ggs_join
Join a new game. This is a new game from Edax point of view. This may be a saved game from GGS side.
| ui | User Interface. |
|
static |
|
static |
ui_ggs_ponder
Ponder, ie search during opponent time.
| ui | User Interface. |
| turn | Edax's color. |
|
static |
ui_ggs_update
Update a game.
| ui | User Interface. |
| void ui_init_ggs | ( | UI * | ui | ) |
ui_init_ggs
Init GGS interface.
| ui | User Interface. |
|
static |
ui_login
Connect to GGS.
| ui | User Interface. |
| void ui_loop_ggs | ( | UI * | ui | ) |
ui_loop_ggs
GGS main loop. Here the input from both the user and GGS server is interpreted.
| ui | User Interface. |
|
static |
|
static |
|
static |
|
static |