blob: 6a4455d27e0f14068e5f5169e747786b8e329b85 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#ifndef IPC_STATE_H
#define IPC_STATE_H
#include <stdatomic.h>
#include "bitboard.h"
#include "ipc/moves.h"
#include "ipc/engine_message.h"
#include "uci/state.h"
enum {
EVENT_INIT,
EVENT_STATE_INITIALISED,
EVENT_UCI_STATE_INITIALISED,
EVENT_UCI_RUNNING,
EVENT_UCI_STOP,
EVENT_UCI_QUIT,
EVENT_ENGINE_GO,
EVENT_ENGINE_RUNNING,
EVENT_ENGINE_STOP,
EVENTS_COUNT
};
typedef struct {
atomic_int event;
engine_messages_t engine_messages;
uci_state_t uci_state;
// reset on new game
position_t from_position;
ipc_moves_t moves;
} ipc_state_t;
void ipc_state_init(ipc_state_t *state);
void ipc_state_deinit(ipc_state_t *state);
void ipc_state_game_reset(ipc_state_t *state);
void ipc_state_wait_for_event(ipc_state_t *state, size_t event);
bool ipc_state_is_event(ipc_state_t *state, size_t event);
void ipc_state_set_event(ipc_state_t *state, size_t event);
#endif // IPC_STATE_H
|