21 lines
1.1 KiB
C
21 lines
1.1 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);
|
|
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);
|