start ChessServer and remove basic redundant examples

This commit is contained in:
2025-05-20 17:25:50 -05:00
parent ad658d914c
commit c107ce732c
8 changed files with 80 additions and 124 deletions

View File

@@ -0,0 +1,46 @@
#include "ChessServer.h"
void ChessServer::onLoad() {
ServerModule* sm = (ServerModule*) moduleInstances[ServerModule()];
sm->startServer(9932);
}
//void ChessServer::run() {}
bool ChessServer::onEvent(const Archimedes::Event& event) {
unsigned int type = app->getEventType(event);
/*if(type == app->getEventType("DataSentEvent")) {
//we did this?
return true;
} else */
if(type == app->getEventType(Archimedes::DataRecievedEvent())) {
static ServerModule* sm; { sm = (ServerModule*) moduleInstances[ServerModule()]; }
Archimedes::DataRecievedEvent& e = (Archimedes::DataRecievedEvent&) event;
static std::string s; s = std::string((const char*)e.msg->m_pData, e.msg->m_cbSize);
for(auto& it : sm->getClients()) {
if(it.first != e.msg->m_conn)
sm->sendReliable(it.first, s.c_str(), s.length());
}
return true;
} /*else if(type == app->getEventType("ConnectionStatusChangedEvent")) {
//Archimedes::ConnectionStatusChangedEvent& e = (Archimedes::ConnectionStatusChangedEvent&) event;
return false;
}*/
return false;
}

View File

@@ -0,0 +1,34 @@
#include "Archimedes.h"
#include "modules/ServerModule/ServerModule.h"
class ChessServer : public Archimedes::Module {
public:
ChessServer(Archimedes::App* a, void* h) : Module(a, h) {
name = "ChessServer";
ServerModule* sm = new ServerModule(a, h);
deps[*sm] = sm;
sm->shouldHandleEvents(ServerModule::SMEventEnum::ConnectionStatusChanged | ServerModule::SMEventEnum::DataSent);
}
ChessServer() { name = "ChessServer"; }
~ChessServer() {
if(app) {}
}
void onLoad();
//void run();
bool onEvent(const Archimedes::Event&);
};
#ifdef CHESSSERVER_DYNAMIC
typedef ChessServer mtype;
#include "endModule.h"
#endif

View File

@@ -1,16 +0,0 @@
#include "DependsOnPrint.h"
DependsOnPrint::DependsOnPrint(Archimedes::App* a, void* h) : Module(a, h) {
name = "DependsOnPrint";
deps["Print"] = "/home/nathan/Projects/Archimedes/result-1/bin/Print";
}
DependsOnPrint::~DependsOnPrint() {
std::cout << "DependsOnPrint Destroyed!\n";
}
void DependsOnPrint::run() {
std::cout << "DependsOnPrint lib loaded and run!\n";
app->emitEvent(new Archimedes::DoUnloadModuleEvent(name));
}

View File

@@ -1,16 +0,0 @@
#include "Archimedes.h"
class DependsOnPrint : public Archimedes::Module {
public:
DependsOnPrint(Archimedes::App*, void*);
~DependsOnPrint();
void run();
void onLoad() {}
};
#ifdef DEPENDSONPRINT_DYNAMIC
typedef DependsOnPrint mtype;
#include "endModule.h"
#endif

View File

@@ -1,19 +0,0 @@
#include "DependsOnPrintStatic.h"
#include "modules/Archimedes-Modules/Print/Print.h"
DependsOnPrintStatic::DependsOnPrintStatic(Archimedes::App* a, void* h) : Module(a, h) {
name = "DependsOnPrintStatic";
Print* p = new Print(a, h);
deps[*p] = p;
}
DependsOnPrintStatic::~DependsOnPrintStatic() {
std::cout << "DependsOnPrintStatic Destroyed!\n";
}
void DependsOnPrintStatic::run() {
std::cout << "DependsOnPrintStatic lib loaded and run!\n";
app->emitEvent(new Archimedes::DoUnloadModuleEvent(name));
}

View File

@@ -1,16 +0,0 @@
#include "Archimedes.h"
class DependsOnPrintStatic : public Archimedes::Module {
public:
DependsOnPrintStatic(Archimedes::App*, void*);
~DependsOnPrintStatic();
void run();
void onLoad() {}
};
#ifdef DEPENDSONPRINTSTATIC_DYNAMIC
typedef DependsOnPrintStatic mtype;
#include "endModule.h"
#endif

View File

@@ -1,37 +0,0 @@
#include "TestMenu.h"
TestMenu::TestMenu(Archimedes::App* a, void* h) : Module(a, h) {
name = "TestMenu";
}
TestMenu::~TestMenu() {
std::cout << "TestMenu Destroyed!\n";
}
void TestMenu::run() {
std::cout << "Your number is: " << num << "\n"
<< "1. Add 1\n"
<< "2. Subtract 1\n"
<< "3. Unload Module\n\n"
<< "4. Quit\n\n";
std::cin >> choice;
switch(choice) {
case 1:
num++;
break;
case 2:
num--;
break;
case 3:
app->emitEvent(new Archimedes::DoUnloadModuleEvent(name));
break;
case 4:
app->end();
break;
default:
break;
}
}

View File

@@ -1,20 +0,0 @@
#include "Archimedes.h"
class TestMenu : public Archimedes::Module {
public:
TestMenu(Archimedes::App*, void*);
TestMenu() { name = "TestMenu"; }
~TestMenu();
void run();
void onLoad() {}
private:
int choice;
int num = 5;
};
#ifdef TESTMENU_DYNAMIC
typedef TestMenu mtype;
#include "endModule.h"
#endif