Files
src-1.2/external/3rd/library/soePlatform/CTServiceGameAPI/CTServiceAPI.h
T

113 lines
5.7 KiB
C++
Executable File

#ifndef CTSERVICEAPI_H
#define CTSERVICEAPI_H
#pragma warning (disable : 4786)
#include "CTCommon/CTServiceCharacter.h"
#include "CTCommon/CTServiceServer.h"
#include "CTCommon/CTEnum.h"
namespace CTService
{
class CTServiceAPICore;
typedef unsigned short CTUnicodeChar;
//--------------------------------------
class CTServiceAPI
//--------------------------------------
{
public:
CTServiceAPI(const char *hostName, const char *game); // hostName: "addr1:port1 addr2:port2"
virtual ~CTServiceAPI();
virtual void onConnect(const char *host, const short port, const short current, const short max) = 0;
virtual void onDisconnect(const char *host, const short port, const short current, const short max) = 0;
void process();
// ----- Requests generated by API -----
// unsigned requestTest(const char *astring, const unsigned anint, void *user);
// unsigned replyTest(const unsigned server_track, const unsigned value, void *user);
unsigned replyMoveStatus(const unsigned server_track, const unsigned status, const unsigned result, const CTUnicodeChar *reason, void *user);
unsigned replyValidateMove(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, const CTUnicodeChar *suggestedName, void *user);
unsigned replyMove(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, void *user);
unsigned replyCharacterList(const unsigned server_track, const unsigned result, const unsigned count, const CTServiceCharacter *characters, void *user);
unsigned replyServerList(const unsigned server_track, const unsigned result, const unsigned count, const CTServiceServer *servers, void *user);
unsigned replyDestinationServerList(const unsigned server_track, const unsigned result, const unsigned count, const CTServiceServer *servers, void *user);
unsigned replyDelete(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, void *user);
unsigned replyRestore(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, void *user);
unsigned replyTransferAccount(const unsigned server_track, const unsigned result, const CTUnicodeChar *reason, void *user);
// ----- Normal Callbacks as a response to requests sent -----
// virtual void onTest(const unsigned track, const int resultCode, const unsigned value, void *user) = 0;
// virtual void onReplyTest(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyMoveStatus(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyValidateMove(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyMove(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyDelete(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyRestore(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyTransferAccount(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyCharacterList(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyServerList(const unsigned track, const int resultCode, void *user) = 0;
virtual void onReplyDestinationServerList(const unsigned track, const int resultCode, void *user) = 0;
// ----- Callbacks generated by the server directly -----
virtual void onServerTest(const unsigned server_track, const char *game, const char *param) = 0;
virtual void onRequestMoveStatus(const unsigned server_track, const char *language,
const unsigned transactionID) = 0;
virtual void onRequestValidateMove(const unsigned server_track, const char *language,
const CTUnicodeChar *sourceServer,
const CTUnicodeChar *destServer,
const CTUnicodeChar *sourceCharacter,
const CTUnicodeChar *destCharacter, const unsigned uid,
const unsigned destuid, bool withItems, bool override) = 0;
virtual void onRequestMove(const unsigned server_track, const char *language,
const CTUnicodeChar *sourceServer,
const CTUnicodeChar *destServer,
const CTUnicodeChar *sourceCharacter,
const CTUnicodeChar *destCharacter, const unsigned uid,
const unsigned destuid, const unsigned transactionID,
bool withItems,
bool override) = 0;
virtual void onRequestDelete(const unsigned server_track, const char *language,
const CTUnicodeChar *sourceServer,
const CTUnicodeChar *destServer,
const CTUnicodeChar *sourceCharacter,
const CTUnicodeChar *destCharacter, const unsigned uid,
const unsigned destuid, const unsigned transactionID,
bool withItems,
bool override) = 0;
virtual void onRequestRestore(const unsigned server_track, const char *language,
const CTUnicodeChar *sourceServer,
const CTUnicodeChar *destServer,
const CTUnicodeChar *sourceCharacter,
const CTUnicodeChar *destCharacter, const unsigned uid,
const unsigned destuid, const unsigned transactionID,
bool withItems,
bool override) = 0;
virtual void onRequestTransferAccount(const unsigned server_track,
const unsigned uid,
const unsigned destuid,
const unsigned transactionID) = 0;
virtual void onRequestCharacterList(const unsigned server_track, const char *language,
const CTUnicodeChar *server, const unsigned uid) = 0;
virtual void onRequestServerList(const unsigned server_track, const char *language) = 0;
virtual void onRequestDestinationServerList(const unsigned server_track, const char *language,
const CTUnicodeChar *character, const CTUnicodeChar *server) = 0;
private:
CTServiceAPICore *m_apiCore;
};
}; // namespace
#endif //CTSERVICEAPI_H