mirror of
https://github.com/EQEmu/Server.git
synced 2026-07-06 13:07:17 +00:00
Some changes to the tasks service and the general routing strategy
This commit is contained in:
@@ -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
|
||||
)
|
||||
|
||||
|
||||
@@ -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() {
|
||||
|
||||
}
|
||||
@@ -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();
|
||||
};
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user