mirror of
https://bitbucket.org/theswgsource/src-1.2.git
synced 2026-08-02 03:16:11 -04:00
229 lines
6.1 KiB
C++
Executable File
229 lines
6.1 KiB
C++
Executable File
#include "Request.h"
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
namespace AuctionTransfer
|
|
{
|
|
void put(Base::ByteStream &msg, const Blob &source);
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
Blob::Blob(const unsigned char *data, unsigned len)
|
|
: m_data(nullptr),
|
|
m_len(len)
|
|
{
|
|
if (m_len > 0)
|
|
{
|
|
m_data = new unsigned char [m_len];
|
|
memcpy(m_data, data, m_len);
|
|
}
|
|
}
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
Blob::Blob(const Blob &cpy)
|
|
: m_data(nullptr),
|
|
m_len(cpy.m_len)
|
|
{
|
|
if (m_len > 0)
|
|
{
|
|
m_data = new unsigned char [m_len];
|
|
memcpy(m_data, cpy.m_data, m_len);
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
Blob::~Blob()
|
|
{
|
|
delete [] m_data;
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
Blob & Blob::operator =(const Blob &cpy)
|
|
{
|
|
if (this != &cpy)
|
|
{
|
|
//copy
|
|
if (m_data)
|
|
{
|
|
delete [] m_data;
|
|
m_data = nullptr;
|
|
}
|
|
|
|
m_len = cpy.m_len;
|
|
|
|
if (m_len > 0)
|
|
{
|
|
m_data = new unsigned char [m_len];
|
|
memcpy(m_data, cpy.m_data, m_len);
|
|
}
|
|
}
|
|
return *this;
|
|
}
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
ReplyRequest::ReplyRequest( RequestTypes type, unsigned serverTrack, unsigned responseCode )
|
|
: GenericRequest((short)type, serverTrack), m_responseCode(responseCode)
|
|
{
|
|
}
|
|
|
|
void ReplyRequest::pack(Base::ByteStream &msg)
|
|
{
|
|
put(msg, m_type);
|
|
put(msg, m_track);
|
|
put(msg, m_server_track);
|
|
put(msg, m_responseCode);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
CommonRequest::CommonRequest( RequestTypes type, unsigned serverTrack, long long transactionID )
|
|
: GenericRequest((short)type, serverTrack), m_transactionID(transactionID)
|
|
{
|
|
}
|
|
|
|
void CommonRequest::pack(Base::ByteStream &msg)
|
|
{
|
|
put(msg, m_type);
|
|
put(msg, m_track);
|
|
put(msg, m_transactionID);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
GetIDRequest::GetIDRequest( RequestTypes type, unsigned serverTrack )
|
|
: GenericRequest((short)type, serverTrack)
|
|
{
|
|
}
|
|
|
|
void GetIDRequest::pack(Base::ByteStream &msg)
|
|
{
|
|
put(msg, m_type);
|
|
put(msg, m_track);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
SendPrepareCompressedRequest::SendPrepareCompressedRequest(RequestTypes type, unsigned serverTrack, const char *serverID, long long transactionID, unsigned stationID, unsigned characterID, long long assetID, const unsigned char *xmlAsset, unsigned length)
|
|
: GenericRequest((short)type, serverTrack),
|
|
m_transactionID(transactionID),
|
|
m_stationID(stationID),
|
|
m_characterID(characterID),
|
|
m_assetID(assetID),
|
|
m_serverID(serverID),
|
|
m_data(xmlAsset, length)
|
|
{
|
|
}
|
|
|
|
void SendPrepareCompressedRequest::pack(Base::ByteStream &msg)
|
|
{
|
|
put(msg, m_type);
|
|
put(msg, m_track);
|
|
put(msg, m_serverID);
|
|
put(msg, m_transactionID);
|
|
put(msg, m_stationID);
|
|
put(msg, m_characterID);
|
|
put(msg, m_assetID);
|
|
put(msg, m_data);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
SendPrepareRequest::SendPrepareRequest( RequestTypes type, unsigned serverTrack, const char *serverID, long long transactionID, unsigned stationID, unsigned characterID, long long assetID, const char *xml )
|
|
: GenericRequest((short)type, serverTrack),
|
|
m_transactionID(transactionID),
|
|
m_stationID(stationID),
|
|
m_characterID(characterID),
|
|
m_assetID(assetID),
|
|
m_xml(xml),
|
|
m_serverID(serverID)
|
|
{
|
|
}
|
|
|
|
void SendPrepareRequest::pack(Base::ByteStream &msg)
|
|
{
|
|
put(msg, m_type);
|
|
put(msg, m_track);
|
|
put(msg, m_serverID);
|
|
put(msg, m_transactionID);
|
|
put(msg, m_stationID);
|
|
put(msg, m_characterID);
|
|
put(msg, m_assetID);
|
|
put(msg, m_xml);
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
ReplyGetCharacterListRequest::ReplyGetCharacterListRequest(RequestTypes type, unsigned serverTrack, unsigned responseCode, const Character characters[], unsigned numCharacters)
|
|
: GenericRequest((short)type, serverTrack), m_responseCode(responseCode)
|
|
{
|
|
for(unsigned i = 0; i < numCharacters; i++)
|
|
{
|
|
m_characters.push_back(characters[i]);
|
|
}
|
|
}
|
|
|
|
void ReplyGetCharacterListRequest::pack(Base::ByteStream &msg)
|
|
{
|
|
put(msg, m_type);
|
|
put(msg, m_track);
|
|
put(msg, m_server_track);
|
|
put(msg, m_responseCode);
|
|
put(msg, (unsigned)m_characters.size());
|
|
for(unsigned i = 0; i < m_characters.size(); i++)
|
|
{
|
|
put(msg, m_characters[i]);
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
IdentifyServerRequest::IdentifyServerRequest(RequestTypes type, unsigned serverTrack, const char *serverID[], unsigned numIDs)
|
|
: GenericRequest((short)type, serverTrack)
|
|
{
|
|
for(unsigned i = 0; i < numIDs; i++)
|
|
{
|
|
m_serverIDs.push_back(serverID[i]);
|
|
}
|
|
}
|
|
|
|
void IdentifyServerRequest::pack(Base::ByteStream &msg)
|
|
{
|
|
put(msg, m_type);
|
|
put(msg, m_track);
|
|
put(msg, (unsigned)m_serverIDs.size());
|
|
for(unsigned i = 0; i < m_serverIDs.size(); i++)
|
|
{
|
|
put(msg, m_serverIDs[i]);
|
|
}
|
|
}
|
|
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
SendAuditRequest::SendAuditRequest( RequestTypes type, unsigned serverTrack, const char *gameCode, const char *serverCode,
|
|
long long inGameAssetID, unsigned stationID, const char *event, const char *message)
|
|
: GenericRequest((short)type, serverTrack), m_gameCode(gameCode), m_serverCode(serverCode), m_assetID(inGameAssetID),
|
|
m_userID(stationID), m_event(event), m_message(message)
|
|
{
|
|
}
|
|
|
|
void SendAuditRequest::pack(Base::ByteStream &msg)
|
|
{
|
|
put(msg, m_type);
|
|
put(msg, m_track);
|
|
put(msg, m_gameCode);
|
|
put(msg, m_serverCode);
|
|
put(msg, m_assetID);
|
|
put(msg, m_userID);
|
|
put(msg, m_event);
|
|
put(msg, m_message);
|
|
}
|
|
|
|
void put(Base::ByteStream &msg, const Blob &source)
|
|
{
|
|
put(msg, source.getLen());
|
|
|
|
if (source.getLen() > 0)
|
|
{
|
|
put(msg, source.getData(), source.getLen());
|
|
}
|
|
}
|
|
|
|
|
|
}; // namespace
|
|
//////////////////////////////////////////////////////////////////////////////////////
|
|
|