XXX: Server

This commit is contained in:
Tom Stellard 2021-01-14 12:18:16 -08:00
parent aa4b4ffcb4
commit deb0a91d4a
5 changed files with 43 additions and 4 deletions

View File

@ -35,6 +35,14 @@ if (JSON-C_FOUND)
link_directories (${JSON-C_LIBRARY_DIRS})
endif()
pkg_check_modules(LIBSOUP libsoup-2.4)
if (LIBSOUP_FOUND)
include_directories (${LIBSOUP_INCLUDE_DIRS})
link_directories (${LIBSOUP_LIBRARY_DIRS})
endif()
add_executable(bygfoot src/bet.c src/bet.h src/finance.h src/fixture.h
src/game_gui.h src/league.h src/main.h src/maths.h src/misc.h
src/option.h src/player.h src/support.h src/treeview2.h src/user.h
@ -87,14 +95,16 @@ add_executable(bygfoot src/bet.c src/bet.h src/finance.h src/fixture.h
src/xml_lg_commentary.c src/xml_mmatches.c src/xml_name.c
src/xml_news.c src/xml_strategy.c src/xml_team.c src/youth_academy.c
src/zip/zip.c src/zip/zip.h src/zip/unzip.c src/zip/unzip.h
src/bygfoot.c src/backend_filesystem.c src/json_serialize.c src/cgi.c ${JSON_FILES})
src/bygfoot.c src/backend_filesystem.c src/json_serialize.c src/cgi.c
src/json_deserialize.c
src/backend_server.c ${JSON_FILES})
# Some gtk headers use deprecated glib features, so disable this warning
# since we can't do anything about it.
target_compile_options(bygfoot PRIVATE -Wno-deprecated-declarations)
# Link the target to the GTK+ libraries
target_link_libraries (bygfoot ${GTK2_LIBRARIES} ${GLIB_LIBRARIES} m
${ZLIB_LIBRARIES} json-c::json-c)
${ZLIB_LIBRARIES} json-c::json-c ${LIBSOUP_LIBRARIES})
install(TARGETS bygfoot)

View File

@ -2,6 +2,7 @@
#include "bygfoot.h"
#include "file.h"
#include "backend_filesystem.h"
#include "backend_server.h"
#include "load_save.h"
#include "gui.h"
#include "misc.h"
@ -31,6 +32,15 @@ bygfoot_init(Bygfoot *bygfoot, enum BygfootFrontend frontend,
}
}
gboolean
bygfoot_init_server_backend(Bygfoot *bygfoot, char *server, int port)
{
bygfoot->backend_server = server;
bygfoot->backend_port = port;
bygfoot->get_country_list = bygfoot_server_get_country_list;
return TRUE;
}
#if 0
void
bygfoot_set_save_dir(Bygfoot *bygfoot, const gchar *dir)

View File

@ -199,6 +199,7 @@ typedef struct
*splash,
*training_camp,
*news,
*network_select,
*alr;
/** The position of the horizontal divider is stored here. */
@ -207,12 +208,16 @@ typedef struct
typedef struct {
gchar *json_filename;
gchar *server_name;
gint server_port;
gboolean is_cgi;
} CommandLineArgs;
void bygfoot_init(Bygfoot *bygfoot, enum BygfootFrontend frontend,
enum BygfootBackend backend);
gboolean
bygfoot_init_server_backend(Bygfoot *bygfoot, char *server, int port);
void bygfoot_load_bygfoot(Bygfoot *bygfoot, const gchar *id);
Country *bygfoot_load_country(Bygfoot *bygfoot, const gchar *country_name);
User *bygfoot_add_user(Bygfoot *bygfoot, const gchar *username, Team *tm);

View File

@ -5,12 +5,15 @@
enum BygfootFrontend {
BYGFOOT_FRONTEND_NONE,
BYGFOOT_FRONTEND_GTK2,
BYGFOOT_FRONTEND_CONSOLE,
};
enum BygfootBackend {
BYGFOOT_BACKEND_FILESYSTEM
BYGFOOT_BACKEND_NONE,
BYGFOOT_BACKEND_FILESYSTEM,
BYGFOOT_BACKEND_SERVER
};
/** This struct holds all of the global state for a bygfoot game. The goal
@ -21,6 +24,9 @@ typedef struct bygfoot
gchar *id;
gchar *save_dir;
gchar *backend_server;
gint backend_port;
enum BygfootFrontend frontend;
/** @name Frontend functions */

View File

@ -86,6 +86,9 @@ main_parse_frontend_backend_cl_arguments(gint *argc, gchar ***argv, CommandLineA
"commands in this file and then exit", "FILE"},
{ "cgi", 0, 0, G_OPTION_ARG_NONE, &args->is_cgi,
"Start bygfoot in cgi mode", NULL },
{ "server-name", 0, 0, G_OPTION_ARG_STRING, &args->server_name,
"Name of bygfoot server to connect to", "uri"},
{ "server-port", 0, 0, G_OPTION_ARG_INT, &args->server_port},
{NULL}
};
@ -467,6 +470,11 @@ main (gint argc, gchar *argv[])
memset(&cl_args, 0, sizeof(cl_args));
main_parse_frontend_backend_cl_arguments(&argc, &argv, &cl_args);
if (cl_args.server_name) {
bygfoot_init(&bygfoot, BYGFOOT_FRONTEND_CONSOLE, BYGFOOT_BACKEND_NONE);
bygfoot_init_server_backend(&bygfoot, cl_args.server_name, cl_args.server_port);
}
if (cl_args.is_cgi) {
bygfoot_init(&bygfoot, BYGFOOT_FRONTEND_CONSOLE, BYGFOOT_BACKEND_FILESYSTEM);
main_init(&argc, &argv, &bygfoot);
@ -480,7 +488,7 @@ main (gint argc, gchar *argv[])
validate_country_files(&bygfoot);
return bygfoot_json_main(&bygfoot, &cl_args);
}
bygfoot_init(&bygfoot, BYGFOOT_FRONTEND_GTK2, BYGFOOT_BACKEND_FILESYSTEM);
//bygfoot_init(&bygfoot, BYGFOOT_FRONTEND_GTK2, BYGFOOT_BACKEND_FILESYSTEM);
main_init(&argc, &argv, &bygfoot);
validate_country_files(&bygfoot);