Files
battleship/include/application.h
T

23 lines
1.2 KiB
C

#pragma once
#include <stdbool.h>
#include "command_queue.h"
#include "game_lifecycle.h"
/* The application task is the sole owner of lifecycle and game mutations. */
typedef struct { command_queue_t command_queue; game_lifecycle_t lifecycle; } application_t;
void application_init(application_t *application, random_source_t random);
void application_set_bot_scheduler(application_t *application, scheduler_t scheduler);
bool application_enqueue(application_t *application, const app_command_t *command);
bool application_take_next_command(application_t *application, app_command_t *command);
lifecycle_result_t application_join(application_t *application, role_t requested_role, const char *name,
uint8_t *session_index);
lifecycle_result_t application_resume(application_t *application,
const uint8_t token[kSessionTokenBytes], uint8_t *session_index);
bool application_session_for_token(const application_t *application,
const uint8_t token[kSessionTokenBytes], uint8_t *session_index);
lifecycle_result_t application_submit(application_t *application, const app_command_t *command);
bool application_bot_take_turn(application_t *application);