Compare commits
5 Commits
b88cd9fe7c
...
35a646d3e8
Author | SHA1 | Date | |
---|---|---|---|
35a646d3e8 | |||
c1921dd3ac | |||
3ea3ef7c11 | |||
4c38bfe9a6 | |||
3d42b59b60 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -12,3 +12,4 @@ treender
|
||||
Console*/
|
||||
main
|
||||
*.bin
|
||||
external
|
@ -5,34 +5,17 @@ project(MyProject)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb")
|
||||
# set(CMAKE_VERBOSE_MAKEFILE ON)
|
||||
add_compile_options(-ggdb)
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
ExternalProject_Add(
|
||||
sqlite
|
||||
PREFIX ""
|
||||
URL https://www.sqlite.org/2025/sqlite-amalgamation-3480000.zip
|
||||
URL_HASH SHA256=d9a15a42db7c78f88fe3d3c5945acce2f4bfe9e4da9f685cd19f6ea1d40aa884
|
||||
DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/downloads
|
||||
SOURCE_DIR ${CMAKE_BINARY_DIR}/sqlite
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND
|
||||
${CMAKE_C_COMPILER} -c ${CMAKE_BINARY_DIR}/sqlite/sqlite3.c -o ${CMAKE_BINARY_DIR}/sqlite-prefix/sqlite3.o -DSQLITE_DQS=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_USE_ALLOCA -DSQLITE_OMIT_AUTOINIT -DSQLITE_STRICT_SUBTYPE=1 -DSQLITE_THREADSAFE=2 &&
|
||||
${CMAKE_AR} rcs ${CMAKE_BINARY_DIR}/sqlite-prefix/libsqlite3.a ${CMAKE_BINARY_DIR}/sqlite-prefix/sqlite3.o
|
||||
INSTALL_COMMAND ""
|
||||
)
|
||||
|
||||
ExternalProject_Add(
|
||||
raylib
|
||||
PREFIX ""
|
||||
URL https://github.com/raysan5/raylib/releases/download/5.5/raylib-5.5_linux_amd64.tar.gz
|
||||
URL_HASH SHA256=3d95ef03d5b38dfa55c0a16ca122d382134b078f0e5b270b52fe7eae0549c000
|
||||
DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/downloads
|
||||
SOURCE_DIR ${CMAKE_BINARY_DIR}/raylib
|
||||
CONFIGURE_COMMAND ""
|
||||
BUILD_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
include_directories(external/include/)
|
||||
link_libraries(
|
||||
${CMAKE_SOURCE_DIR}/external/libimgui.a
|
||||
${CMAKE_SOURCE_DIR}/external/libraylib.a
|
||||
${CMAKE_SOURCE_DIR}/external/libsqlite3.a
|
||||
pthread
|
||||
dl
|
||||
m
|
||||
)
|
||||
|
||||
add_executable(app
|
||||
@ -51,19 +34,34 @@ add_executable(app
|
||||
shared/src/TcpSocket.cpp
|
||||
)
|
||||
# Add include directories
|
||||
target_include_directories(app PRIVATE app/inc shared/inc ${CMAKE_BINARY_DIR}/raylib/include)
|
||||
target_link_libraries(app ${CMAKE_BINARY_DIR}/raylib/lib/libraylib.a)
|
||||
target_include_directories(app PRIVATE app/inc shared/inc )
|
||||
|
||||
add_executable(server
|
||||
server/src/server.cpp
|
||||
server/src/sql.cpp
|
||||
server/src/checker.cpp
|
||||
|
||||
shared/src/sql.cpp
|
||||
shared/src/TcpSocket.cpp
|
||||
shared/src/values/Dna.cpp
|
||||
shared/src/values/DnaManager.cpp
|
||||
shared/src/values/mrand.cpp
|
||||
)
|
||||
# Add include directories
|
||||
target_include_directories(server PRIVATE server/inc shared/inc ${CMAKE_BINARY_DIR}/sqlite/)
|
||||
target_link_libraries(server PRIVATE pthread dl m ${CMAKE_BINARY_DIR}/sqlite-prefix/libsqlite3.a)
|
||||
target_include_directories(server PRIVATE server/inc shared/inc)
|
||||
|
||||
add_executable(view
|
||||
view/src/main.cpp
|
||||
|
||||
shared/src/canvas/BackGround.cpp
|
||||
shared/src/canvas/BackGroundColors.cpp
|
||||
shared/src/canvas/Canvas.cpp
|
||||
shared/src/canvas/Circle.cpp
|
||||
shared/src/canvas/Tree.cpp
|
||||
shared/src/values/Dna.cpp
|
||||
shared/src/values/DnaManager.cpp
|
||||
shared/src/values/mrand.cpp
|
||||
|
||||
shared/src/sql.cpp
|
||||
)
|
||||
# Add include directories
|
||||
target_include_directories(view PRIVATE view/inc shared/inc)
|
@ -9,7 +9,6 @@
|
||||
#include "sys.hpp"
|
||||
#include "DnaStore.hpp"
|
||||
#include "TcpSocket.hpp"
|
||||
#include "NetConst.hpp"
|
||||
|
||||
#include <raylib.h>
|
||||
|
||||
|
@ -1,5 +1,4 @@
|
||||
#include "TcpSocket.hpp"
|
||||
#include "NetConst.hpp"
|
||||
#include "sql.hpp"
|
||||
#include "values/DnaManager.hpp"
|
||||
#include "checker.hpp"
|
||||
@ -118,6 +117,7 @@ void call(int sock, sockaddr_in newSocketInfo)
|
||||
int main()
|
||||
{
|
||||
sql::init();
|
||||
sql::create_tables();
|
||||
std::thread t(checker);
|
||||
// Bind the server to a port.
|
||||
int err = TcpSocket::listent("0.0.0.0", serverPort, call);
|
||||
|
@ -1,17 +0,0 @@
|
||||
#include <cinttypes>
|
||||
|
||||
constexpr int64_t StartHeader = 1737720524UL;
|
||||
constexpr uint16_t serverPort = 9000;
|
||||
|
||||
enum Mess
|
||||
{
|
||||
RES_OK,
|
||||
RES_NO,
|
||||
REQ_SEND_GEN,
|
||||
};
|
||||
|
||||
struct Message
|
||||
{
|
||||
Mess mess;
|
||||
uint32_t data;
|
||||
};
|
@ -1,25 +1,42 @@
|
||||
#include <string>
|
||||
#include <netinet/in.h>
|
||||
#include <cinttypes>
|
||||
|
||||
#define AS_DEFAULT_BUFFER_SIZE 0x1000 /*4096 bytes*/
|
||||
|
||||
constexpr int64_t StartHeader = 1737720524UL;
|
||||
constexpr uint16_t serverPort = 9000;
|
||||
|
||||
enum Mess
|
||||
{
|
||||
RES_OK,
|
||||
RES_NO,
|
||||
REQ_SEND_GEN,
|
||||
};
|
||||
|
||||
struct Message
|
||||
{
|
||||
Mess mess;
|
||||
uint32_t data;
|
||||
};
|
||||
|
||||
namespace TcpSocket
|
||||
{
|
||||
|
||||
void setTimeout(int seconds, int sock);
|
||||
void setTimeout(int seconds, int sock);
|
||||
|
||||
ssize_t sendt(int sock, const void *bytes, size_t byteslength);
|
||||
ssize_t sendt(int sock, const void *bytes, size_t byteslength);
|
||||
|
||||
ssize_t recvt(int sock, void *bytes, size_t byteslength);
|
||||
ssize_t recvt(int sock, void *bytes, size_t byteslength);
|
||||
|
||||
void closet(int sock);
|
||||
void closet(int sock);
|
||||
|
||||
std::string remoteAddress(sockaddr_in &address);
|
||||
std::string remoteAddress(sockaddr_in &address);
|
||||
|
||||
int remotePort(sockaddr_in &address);
|
||||
int connectt(const char *host, uint16_t port);
|
||||
int remotePort(sockaddr_in &address);
|
||||
int connectt(const char *host, uint16_t port);
|
||||
|
||||
typedef void(OnNewConnectionCallBack)(int sock, sockaddr_in newSocketInfo);
|
||||
int listent(const char *host, uint16_t port, OnNewConnectionCallBack callback);
|
||||
typedef void(OnNewConnectionCallBack)(int sock, sockaddr_in newSocketInfo);
|
||||
int listent(const char *host, uint16_t port, OnNewConnectionCallBack callback);
|
||||
|
||||
} // namespace TcpSocket
|
||||
|
@ -17,6 +17,7 @@ const char get_gen[] = "SELECT lt.HASH, lt.POS, lt.LIKED FROM like_table lt JOIN
|
||||
const char get_user_table_id[] = "SELECT ID FROM user_table WHERE USER_ID = ? AND GEN = ?;";
|
||||
|
||||
const char rem_like_w_user_table_id[] = "DELETE FROM like_table WHERE USER_TABLE_ID = ?;";
|
||||
|
||||
const char rem_user_table_id[] = "DELETE FROM user_table WHERE ID = ?;";
|
||||
|
||||
const char set_checked[] = "UPDATE user_table SET CHECKED = 1 WHERE USER_ID = ? AND GEN = ?;";
|
||||
@ -31,6 +32,7 @@ struct sqlite3_stmt;
|
||||
|
||||
namespace sql
|
||||
{
|
||||
void create_tables();
|
||||
void init();
|
||||
void shutdown();
|
||||
int open(const char *filename, sqlite3 **ppDb);
|
@ -1,5 +1,5 @@
|
||||
#include "canvas/Circle.hpp"
|
||||
#include "sunShader.hpp"
|
||||
#include "canvas/sunShader.hpp"
|
||||
|
||||
#include <raylib.h>
|
||||
#include <rlgl.h>
|
||||
|
@ -5,59 +5,64 @@
|
||||
|
||||
#include <sqlite3.h>
|
||||
|
||||
void sql::init()
|
||||
{
|
||||
sqlite3_initialize();
|
||||
sqlite3 *db;
|
||||
char *zErrMsg = 0;
|
||||
int rc;
|
||||
|
||||
/* Open database */
|
||||
rc = sqlite3_open(DB_NAME, &db);
|
||||
|
||||
if (rc)
|
||||
{
|
||||
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stdout, "Opened database successfully\n");
|
||||
}
|
||||
|
||||
/* Execute SQL statement */
|
||||
rc = sqlite3_exec(db, create_like_table, nullptr, 0, &zErrMsg);
|
||||
if (rc != SQLITE_OK)
|
||||
{
|
||||
fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
||||
sqlite3_free(zErrMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stdout, "like_table created successfully\n");
|
||||
}
|
||||
|
||||
rc = sqlite3_exec(db, create_user_table, nullptr, 0, &zErrMsg);
|
||||
if (rc != SQLITE_OK)
|
||||
{
|
||||
fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
||||
sqlite3_free(zErrMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stdout, "user_table created successfully\n");
|
||||
}
|
||||
|
||||
sqlite3_close(db);
|
||||
}
|
||||
|
||||
void sql::shutdown()
|
||||
{
|
||||
sqlite3_shutdown();
|
||||
}
|
||||
|
||||
namespace sql
|
||||
{
|
||||
|
||||
void create_tables()
|
||||
{
|
||||
sqlite3 *db;
|
||||
char *zErrMsg = 0;
|
||||
int rc;
|
||||
|
||||
/* Open database */
|
||||
rc = sqlite3_open(DB_NAME, &db);
|
||||
|
||||
if (rc)
|
||||
{
|
||||
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stdout, "Opened database successfully\n");
|
||||
}
|
||||
|
||||
/* Execute SQL statement */
|
||||
rc = sqlite3_exec(db, create_like_table, nullptr, 0, &zErrMsg);
|
||||
if (rc != SQLITE_OK)
|
||||
{
|
||||
fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
||||
sqlite3_free(zErrMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stdout, "like_table created successfully\n");
|
||||
}
|
||||
|
||||
rc = sqlite3_exec(db, create_user_table, nullptr, 0, &zErrMsg);
|
||||
if (rc != SQLITE_OK)
|
||||
{
|
||||
fprintf(stderr, "SQL error: %s\n", zErrMsg);
|
||||
sqlite3_free(zErrMsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stdout, "user_table created successfully\n");
|
||||
}
|
||||
|
||||
sqlite3_close(db);
|
||||
}
|
||||
|
||||
void init()
|
||||
{
|
||||
sqlite3_initialize();
|
||||
}
|
||||
|
||||
void shutdown()
|
||||
{
|
||||
sqlite3_shutdown();
|
||||
}
|
||||
|
||||
int open(const char *filename, sqlite3 **ppDb)
|
||||
{
|
||||
return sqlite3_open(filename, ppDb);
|
51
view/src/main.cpp
Normal file
51
view/src/main.cpp
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
#include <raylib.h>
|
||||
#include <imgui.h>
|
||||
#include <rlImGui.h>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int screenWidth = 800;
|
||||
int screenHeight = 800;
|
||||
|
||||
SetConfigFlags(FLAG_WINDOW_RESIZABLE);
|
||||
InitWindow(screenWidth, screenHeight, "VIEW");
|
||||
SetTargetFPS(60);
|
||||
rlImGuiSetup(true);
|
||||
|
||||
bool showDemoWindow = true;
|
||||
ImGui::GetIO().ConfigFlags |= ImGuiConfigFlags_DockingEnable;
|
||||
|
||||
while (!WindowShouldClose())
|
||||
{
|
||||
BeginDrawing();
|
||||
rlImGuiBegin();
|
||||
|
||||
ClearBackground(RAYWHITE);
|
||||
|
||||
ImGui::DockSpaceOverViewport(0, NULL, ImGuiDockNodeFlags_PassthruCentralNode);
|
||||
|
||||
if (ImGui::BeginMainMenuBar())
|
||||
{
|
||||
if (ImGui::BeginMenu("Window"))
|
||||
{
|
||||
if (ImGui::MenuItem("Demo Window", nullptr, showDemoWindow))
|
||||
showDemoWindow = !showDemoWindow;
|
||||
|
||||
ImGui::EndMenu();
|
||||
}
|
||||
ImGui::EndMainMenuBar();
|
||||
}
|
||||
|
||||
if (showDemoWindow)
|
||||
ImGui::ShowDemoWindow(&showDemoWindow);
|
||||
|
||||
|
||||
rlImGuiEnd();
|
||||
EndDrawing();
|
||||
}
|
||||
|
||||
rlImGuiShutdown();
|
||||
CloseWindow();
|
||||
return 0;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user