Some changes to the tasks service and the general routing strategy

This commit is contained in:
KimLS
2019-06-10 01:10:28 -07:00
parent b3a3d9bec5
commit 65c9c86556
26 changed files with 360 additions and 314 deletions
+2
View File
@@ -1,10 +1,12 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(service_sources
tasks_database.cpp
tasks_service.cpp
)
SET(service_headers
tasks_database.h
tasks_service.h
)
+17
View File
@@ -0,0 +1,17 @@
#include "tasks_database.h"
TasksDatabase::TasksDatabase()
: Database()
{
}
TasksDatabase::TasksDatabase(const char* host, const char* user, const char* passwd, const char* database, uint32 port)
: Database(host, user, passwd, database, port)
{
}
TasksDatabase::~TasksDatabase() {
}
+12
View File
@@ -0,0 +1,12 @@
#pragma once
#include "../../common/global_define.h"
#include "../../common/types.h"
#include "../../common/database.h"
class TasksDatabase : public Database {
public:
TasksDatabase();
TasksDatabase(const char* host, const char* user, const char* passwd, const char* database, uint32 port);
~TasksDatabase();
};
+26 -3
View File
@@ -1,5 +1,6 @@
#include "tasks_service.h"
#include "../../common/eqemu_logsys.h"
#include "../../common/eqemu_config.h"
EQ::TasksService::TasksService()
: EQ::Service("Tasks", 100, 1)
@@ -12,20 +13,42 @@ EQ::TasksService::~TasksService() {
}
void EQ::TasksService::OnStart() {
Log(Logs::General, Logs::Status, "Connecting to database...");
auto config = EQEmuConfig::get();
m_db.reset(new TasksDatabase());
auto r = m_db->Connect(
config->DatabaseHost.c_str(),
config->DatabaseUsername.c_str(),
config->DatabasePassword.c_str(),
config->DatabaseDB.c_str(),
config->DatabasePort);
if (false == r) {
Log(Logs::General, Logs::Status, "Unable to connect to database.");
Stop();
return;
}
Log(Logs::General, Logs::Status, "Connected to database.");
m_db->LoadLogSettings(LogSys.log_settings);
LogSys.StartFileLogs();
}
void EQ::TasksService::OnStop() {
m_db.release();
}
void EQ::TasksService::OnHeartbeat(double time_since_last) {
}
void EQ::TasksService::OnRoutedMessage(const std::string& identifier, int type, const EQ::Net::Packet& p)
void EQ::TasksService::OnRoutedMessage(const std::string& filter, const std::string& identifier, const std::string& id, const EQ::Net::Packet& payload)
{
LogF(Logs::General, Logs::World_Server, "Routed message of type {0} with length {1}", type, p.Length());
LogF(Logs::General, Logs::Status, "Routed message from filter {0}, identifier {1}, id {2} with a payload of size {3}", filter, identifier, id, payload.Length());
}
EQRegisterService(EQ::TasksService);
+5 -1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "../../common/service.h"
#include "tasks_database.h"
namespace EQ
{
@@ -14,6 +15,9 @@ namespace EQ
virtual void OnStart();
virtual void OnStop();
virtual void OnHeartbeat(double time_since_last);
virtual void OnRoutedMessage(const std::string& identifier, int type, const EQ::Net::Packet& p);
virtual void OnRoutedMessage(const std::string& filter, const std::string& identifier, const std::string& id, const EQ::Net::Packet& payload);
private:
std::unique_ptr<TasksDatabase> m_db;
};
}