mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-07-28 23:16:15 -04:00
Added TransferServer project and CTServiceGameAPI library
This commit is contained in:
@@ -0,0 +1,187 @@
|
||||
#pragma warning (disable : 4786)
|
||||
//test
|
||||
#include <string.h>
|
||||
#include "CTServiceAPI.h"
|
||||
#include "CTServiceAPICore.h"
|
||||
#include "Request.h"
|
||||
#include "Response.h"
|
||||
|
||||
const unsigned short EMPTY_STRING[1] = { 0 };
|
||||
const char * DEFAULT_GAMECODE = "ZZZ";
|
||||
const char * DEFAULT_HOST = "ctservice.station.sony.com";
|
||||
const unsigned short DEFAULT_PORT = 2000;
|
||||
|
||||
namespace CTService
|
||||
{
|
||||
|
||||
using namespace Base;
|
||||
|
||||
//-----------------------------------------------
|
||||
CTServiceAPI::CTServiceAPI(const char *hostName, const char *game)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
std::vector<const char *> hostArray;
|
||||
std::vector<short> portArray;
|
||||
char hostConfig[4096];
|
||||
if (hostName == NULL)
|
||||
hostName = DEFAULT_HOST;
|
||||
if (!game)
|
||||
game = DEFAULT_GAMECODE;
|
||||
strncpy(hostConfig, hostName, 4096); hostConfig[4095] = 0;
|
||||
if (char * ptr = strtok(hostConfig, " "))
|
||||
{
|
||||
do
|
||||
{
|
||||
char * host = ptr;
|
||||
char * portStr = strchr(host, ':');
|
||||
unsigned short port = DEFAULT_PORT;
|
||||
if (portStr)
|
||||
{
|
||||
*portStr++ = 0;
|
||||
port = atoi(portStr);
|
||||
}
|
||||
|
||||
if (::strlen(host) && port)
|
||||
{
|
||||
hostArray.push_back(host);
|
||||
portArray.push_back(port);
|
||||
}
|
||||
}
|
||||
while ((ptr = strtok(NULL, " ")) != NULL);
|
||||
}
|
||||
if (hostArray.empty())
|
||||
{
|
||||
hostArray.push_back(DEFAULT_HOST);
|
||||
portArray.push_back(DEFAULT_PORT);
|
||||
}
|
||||
m_apiCore = new CTServiceAPICore(&hostArray[0], &portArray[0], hostArray.size(), this, game);
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
CTServiceAPI::~CTServiceAPI()
|
||||
//-----------------------------------------------
|
||||
{
|
||||
delete m_apiCore;
|
||||
}
|
||||
|
||||
|
||||
//-----------------------------------------------
|
||||
void CTServiceAPI::process()
|
||||
//-----------------------------------------------
|
||||
{
|
||||
m_apiCore->process();
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
//
|
||||
// Add requests and replies here
|
||||
//
|
||||
//-----------------------------------------------
|
||||
/*
|
||||
//----------- TEST CODE ONLY ------------
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::requestTest(const char *astring, const unsigned anint, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
std::string s_astring = astring;
|
||||
ReqTest *req = new ReqTest(s_astring, anint);
|
||||
return (m_apiCore->submitRequest(req, new ResTest(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyTest(const unsigned server_track, const unsigned value, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
ReqReplyTest *req = new ReqReplyTest(server_track, value);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyTest(user)));
|
||||
}
|
||||
//----------- TEST CODE ONLY ------------
|
||||
*/
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyMoveStatus(const unsigned server_track, const unsigned status, const unsigned result, const CTUnicodeChar *reason, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
if (!reason)
|
||||
reason = EMPTY_STRING;
|
||||
ReqReplyMoveStatus *req = new ReqReplyMoveStatus(server_track, status, result, reason);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyMoveStatus(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyValidateMove(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, const CTUnicodeChar *suggestedName, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
if (!reason)
|
||||
reason = EMPTY_STRING;
|
||||
if (!suggestedName)
|
||||
suggestedName = EMPTY_STRING;
|
||||
ReqReplyValidateMove *req = new ReqReplyValidateMove(server_track, result, reason, suggestedName);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyValidateMove(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyMove(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
if (!reason)
|
||||
reason = EMPTY_STRING;
|
||||
ReqReplyMove *req = new ReqReplyMove(server_track, result, reason);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyMove(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyDelete(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
if (!reason)
|
||||
reason = EMPTY_STRING;
|
||||
ReqReplyDelete *req = new ReqReplyDelete(server_track, result, reason);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyDelete(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyRestore(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
if (!reason)
|
||||
reason = EMPTY_STRING;
|
||||
ReqReplyRestore *req = new ReqReplyRestore(server_track, result, reason);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyRestore(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyTransferAccount(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
if (!reason)
|
||||
reason = EMPTY_STRING;
|
||||
ReqReplyTransferAccount *req = new ReqReplyTransferAccount(server_track, result, reason);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyTransferAccount(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyCharacterList(const unsigned server_track, const unsigned result, const unsigned count, const CTServiceCharacter *characters, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
ReqReplyCharacterList *req = new ReqReplyCharacterList(server_track, result, count, characters);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyCharacterList(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyServerList(const unsigned server_track, const unsigned result, const unsigned count, const CTServiceServer *servers, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
ReqReplyServerList *req = new ReqReplyServerList(server_track, result, count, servers);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyServerList(user)));
|
||||
}
|
||||
|
||||
//-----------------------------------------------
|
||||
unsigned CTServiceAPI::replyDestinationServerList(const unsigned server_track, const unsigned result, const unsigned count, const CTServiceServer *servers, void *user)
|
||||
//-----------------------------------------------
|
||||
{
|
||||
ReqReplyDestinationServerList *req = new ReqReplyDestinationServerList(server_track, result, count, servers);
|
||||
return (m_apiCore->submitRequest(req, new ResReplyDestinationServerList(user)));
|
||||
}
|
||||
|
||||
}; // namespace
|
||||
Reference in New Issue
Block a user