Compare commits
5 Commits
b88cd9fe7c
...
35a646d3e8
Author | SHA1 | Date | |
---|---|---|---|
35a646d3e8 | |||
c1921dd3ac | |||
3ea3ef7c11 | |||
4c38bfe9a6 | |||
3d42b59b60 |
3
.gitignore
vendored
3
.gitignore
vendored
@ -11,4 +11,5 @@ treender
|
|||||||
*.vcxproj*
|
*.vcxproj*
|
||||||
Console*/
|
Console*/
|
||||||
main
|
main
|
||||||
*.bin
|
*.bin
|
||||||
|
external
|
@ -5,34 +5,17 @@ project(MyProject)
|
|||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
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)
|
include_directories(external/include/)
|
||||||
|
link_libraries(
|
||||||
ExternalProject_Add(
|
${CMAKE_SOURCE_DIR}/external/libimgui.a
|
||||||
sqlite
|
${CMAKE_SOURCE_DIR}/external/libraylib.a
|
||||||
PREFIX ""
|
${CMAKE_SOURCE_DIR}/external/libsqlite3.a
|
||||||
URL https://www.sqlite.org/2025/sqlite-amalgamation-3480000.zip
|
pthread
|
||||||
URL_HASH SHA256=d9a15a42db7c78f88fe3d3c5945acce2f4bfe9e4da9f685cd19f6ea1d40aa884
|
dl
|
||||||
DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/downloads
|
m
|
||||||
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 ""
|
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(app
|
add_executable(app
|
||||||
@ -51,19 +34,34 @@ add_executable(app
|
|||||||
shared/src/TcpSocket.cpp
|
shared/src/TcpSocket.cpp
|
||||||
)
|
)
|
||||||
# Add include directories
|
# Add include directories
|
||||||
target_include_directories(app PRIVATE app/inc shared/inc ${CMAKE_BINARY_DIR}/raylib/include)
|
target_include_directories(app PRIVATE app/inc shared/inc )
|
||||||
target_link_libraries(app ${CMAKE_BINARY_DIR}/raylib/lib/libraylib.a)
|
|
||||||
|
|
||||||
add_executable(server
|
add_executable(server
|
||||||
server/src/server.cpp
|
server/src/server.cpp
|
||||||
server/src/sql.cpp
|
|
||||||
server/src/checker.cpp
|
server/src/checker.cpp
|
||||||
|
|
||||||
|
shared/src/sql.cpp
|
||||||
shared/src/TcpSocket.cpp
|
shared/src/TcpSocket.cpp
|
||||||
shared/src/values/Dna.cpp
|
shared/src/values/Dna.cpp
|
||||||
shared/src/values/DnaManager.cpp
|
shared/src/values/DnaManager.cpp
|
||||||
shared/src/values/mrand.cpp
|
shared/src/values/mrand.cpp
|
||||||
)
|
)
|
||||||
# Add include directories
|
# Add include directories
|
||||||
target_include_directories(server PRIVATE server/inc shared/inc ${CMAKE_BINARY_DIR}/sqlite/)
|
target_include_directories(server PRIVATE server/inc shared/inc)
|
||||||
target_link_libraries(server PRIVATE pthread dl m ${CMAKE_BINARY_DIR}/sqlite-prefix/libsqlite3.a)
|
|
||||||
|
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 "sys.hpp"
|
||||||
#include "DnaStore.hpp"
|
#include "DnaStore.hpp"
|
||||||
#include "TcpSocket.hpp"
|
#include "TcpSocket.hpp"
|
||||||
#include "NetConst.hpp"
|
|
||||||
|
|
||||||
#include <raylib.h>
|
#include <raylib.h>
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
#include "TcpSocket.hpp"
|
#include "TcpSocket.hpp"
|
||||||
#include "NetConst.hpp"
|
|
||||||
#include "sql.hpp"
|
#include "sql.hpp"
|
||||||
#include "values/DnaManager.hpp"
|
#include "values/DnaManager.hpp"
|
||||||
#include "checker.hpp"
|
#include "checker.hpp"
|
||||||
@ -118,6 +117,7 @@ void call(int sock, sockaddr_in newSocketInfo)
|
|||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
sql::init();
|
sql::init();
|
||||||
|
sql::create_tables();
|
||||||
std::thread t(checker);
|
std::thread t(checker);
|
||||||
// Bind the server to a port.
|
// Bind the server to a port.
|
||||||
int err = TcpSocket::listent("0.0.0.0", serverPort, call);
|
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 <string>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
|
#include <cinttypes>
|
||||||
|
|
||||||
#define AS_DEFAULT_BUFFER_SIZE 0x1000 /*4096 bytes*/
|
#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
|
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 remotePort(sockaddr_in &address);
|
||||||
int connectt(const char *host, uint16_t port);
|
int connectt(const char *host, uint16_t port);
|
||||||
|
|
||||||
typedef void(OnNewConnectionCallBack)(int sock, sockaddr_in newSocketInfo);
|
typedef void(OnNewConnectionCallBack)(int sock, sockaddr_in newSocketInfo);
|
||||||
int listent(const char *host, uint16_t port, OnNewConnectionCallBack callback);
|
int listent(const char *host, uint16_t port, OnNewConnectionCallBack callback);
|
||||||
|
|
||||||
} // namespace TcpSocket
|
} // 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 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_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 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 = ?;";
|
const char set_checked[] = "UPDATE user_table SET CHECKED = 1 WHERE USER_ID = ? AND GEN = ?;";
|
||||||
@ -31,6 +32,7 @@ struct sqlite3_stmt;
|
|||||||
|
|
||||||
namespace sql
|
namespace sql
|
||||||
{
|
{
|
||||||
|
void create_tables();
|
||||||
void init();
|
void init();
|
||||||
void shutdown();
|
void shutdown();
|
||||||
int open(const char *filename, sqlite3 **ppDb);
|
int open(const char *filename, sqlite3 **ppDb);
|
@ -1,5 +1,5 @@
|
|||||||
#include "canvas/Circle.hpp"
|
#include "canvas/Circle.hpp"
|
||||||
#include "sunShader.hpp"
|
#include "canvas/sunShader.hpp"
|
||||||
|
|
||||||
#include <raylib.h>
|
#include <raylib.h>
|
||||||
#include <rlgl.h>
|
#include <rlgl.h>
|
||||||
|
@ -5,59 +5,64 @@
|
|||||||
|
|
||||||
#include <sqlite3.h>
|
#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
|
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)
|
int open(const char *filename, sqlite3 **ppDb)
|
||||||
{
|
{
|
||||||
return sqlite3_open(filename, 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