mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-10-04 19:13:06 -04:00
Initial LoginServer project commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
// ======================================================================
|
||||
//
|
||||
// TaskDeleteCharacter.cpp
|
||||
// copyright (c) 2001 Sony Online Entertainment
|
||||
//
|
||||
// ======================================================================
|
||||
|
||||
#include "FirstLoginServer.h"
|
||||
#include "TaskDeleteCharacter.h"
|
||||
|
||||
#include "ClientConnection.h"
|
||||
#include "LoginServer.h"
|
||||
#include "DatabaseConnection.h"
|
||||
#include "sharedDatabaseInterface/DbSession.h"
|
||||
|
||||
// ======================================================================
|
||||
|
||||
TaskDeleteCharacter::TaskDeleteCharacter(uint32 clusterId, const NetworkId &characterId, StationId stationId) :
|
||||
TaskRequest(),
|
||||
m_clusterId(clusterId),
|
||||
m_characterId(characterId),
|
||||
m_stationId(stationId)
|
||||
{
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
bool TaskDeleteCharacter::process(DB::Session *session)
|
||||
{
|
||||
DeleteCharacterQuery qry;
|
||||
qry.cluster_id=m_clusterId; //lint !e713 // loss ofp recision unsigned long to long
|
||||
qry.character_id=m_characterId;
|
||||
qry.station_id=m_stationId; //lint !e713 // loss ofp recision unsigned long to long
|
||||
|
||||
bool rval = session->exec(&qry);
|
||||
|
||||
qry.done();
|
||||
return rval;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
void TaskDeleteCharacter::onComplete()
|
||||
{
|
||||
ClientConnection* target = LoginServer::getInstance().getValidatedClient(m_stationId);
|
||||
if (target)
|
||||
target->onCharacterDeletedFromLoginDatabase(m_characterId);
|
||||
}
|
||||
|
||||
// ======================================================================
|
||||
|
||||
TaskDeleteCharacter::DeleteCharacterQuery::DeleteCharacterQuery() :
|
||||
Query(),
|
||||
cluster_id(),
|
||||
character_id(),
|
||||
station_id()
|
||||
{
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
void TaskDeleteCharacter::DeleteCharacterQuery::getSQL(std::string &sql)
|
||||
{
|
||||
sql = std::string("begin ")+DatabaseConnection::getInstance().getSchemaQualifier()+"login.delete_character(:cluster_id, :character_id, :station_id); end;";
|
||||
// DEBUG_REPORT_LOG(true, ("TaskDeleteCharacter SQL: %s\n", sql.c_str()));
|
||||
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
bool TaskDeleteCharacter::DeleteCharacterQuery::bindParameters()
|
||||
{
|
||||
if (!bindParameter(cluster_id)) return false;
|
||||
if (!bindParameter(character_id)) return false;
|
||||
if (!bindParameter(station_id)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
bool TaskDeleteCharacter::DeleteCharacterQuery::bindColumns()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
DB::Query::QueryMode TaskDeleteCharacter::DeleteCharacterQuery::getExecutionMode() const
|
||||
{
|
||||
return MODE_PROCEXEC;
|
||||
}
|
||||
|
||||
// ======================================================================
|
||||
Reference in New Issue
Block a user