return plain_;
}
-FatalConnectionError::FatalConnectionError() :
- Command(header::FatalConnectionError, "")
-{
-
-}
-
-FatalConnectionError::FatalConnectionError(uint32_t user_id) :\r
- Command(header::FatalConnectionError, "")
-{
- body_ = Utils::Serialize(user_id);
-}
-
-ServerReceivePublicKey::ServerReceivePublicKey(const std::string& key) :
- Command(header::ServerReceivePublicKey, key)
-{
-}
-
-ClientReceiveCommonKey::ClientReceiveCommonKey(const std::string& key,
- const std::string& sign,
- uint32_t user_id) :\r
- Command(header::ClientReceiveCommonKey, Utils::Serialize(key, sign, user_id))
-{
-}
-
-ClientUpdatePlayerPosition::ClientUpdatePlayerPosition
-(uint32_t id, int16_t x, int16_t y, int16_t z, uint8_t theta, uint8_t vy) :\r
-Command(header::ClientUpdatePlayerPosition, Utils::Serialize(id, x, y, z, theta, vy))
-{
-
-}
-
-ServerUpdatePlayerPosition::ServerUpdatePlayerPosition(int16_t x, int16_t y, int16_t z, uint8_t theta, uint8_t vy) :\r
- Command(header::ServerUpdatePlayerPosition, Utils::Serialize(x, y, z, theta, vy))
-{
-}
-
-ServerReceiveClientInfo::ServerReceiveClientInfo(const std::string& key, uint16_t version, uint16_t udp_port) :
- Command(header::ServerReceiveClientInfo, Utils::Serialize(key, version, udp_port))
-{
-
-}
-
-ServerRequestedAccountRevisionPatch::ServerRequestedAccountRevisionPatch(uint32_t user_id, int revision) :\r
- Command(header::ServerRequestedAccountRevisionPatch,
- Utils::Serialize(user_id, revision))
-{
-}
-
-ClientReceiveAccountRevisionPatch::ClientReceiveAccountRevisionPatch(const std::string& patch) :
- Command(header::ClientReceiveAccountRevisionPatch, patch)
-{
-
-}
-
-ClientReceiveAccountRevisionUpdateNotify::
-ClientReceiveAccountRevisionUpdateNotify(uint32_t user_id, int revision) :\r
- Command(header::ClientReceiveAccountRevisionUpdateNotify, Utils::Serialize(user_id, revision))
-{
-}
-
-ClientReceiveWriteAverageLimitUpdate::ClientReceiveWriteAverageLimitUpdate(uint16_t byte) :\r
- Command(header::ClientReceiveWriteAverageLimitUpdate, Utils::Serialize(byte))
-{
-}
-
-ClientReceiveUnsupportVersionError::ClientReceiveUnsupportVersionError(uint32_t require_version) :
- Command(header::ClientReceiveUnsupportVersionError, Utils::Serialize(require_version))
-{
-}
-
-ServerReceiveAccountInitializeData::ServerReceiveAccountInitializeData(const std::string& data):
- Command(header::ServerReceiveAccountInitializeData, data)
-{
-
-}
-
-ServerUpdateAccountProperty::ServerUpdateAccountProperty(AccountProperty property, const std::string& value) :
-Command(header::ServerUpdateAccountProperty, Utils::Serialize(property, value))
-{
-
-}
-
-ServerReceiveJSON::ServerReceiveJSON(const std::string& json) :
- Command(header::ServerReceiveJSON, json)
-{
-}
-
-ClientReceiveJSON::ClientReceiveJSON(const std::string& info_json, const std::string& message_json) :
- Command(header::ClientReceiveJSON, Utils::Serialize(info_json, message_json))
-{
-}
-
-ClientReceiveServerInfo::ClientReceiveServerInfo(const std::string& stage) :
- Command(header::ClientReceiveServerInfo, Utils::Serialize(stage))
-{
-
-}
-
-ClientReceiveFullServerInfo::ClientReceiveFullServerInfo(const std::string& xml) :
- Command(header::ClientReceiveFullServerInfo, Utils::Serialize(xml))
-{
-
-}
-
-ClientReceivePlainFullServerInfo::ClientReceivePlainFullServerInfo(const std::string& xml) :
- Command(header::ClientReceivePlainFullServerInfo, Utils::Serialize(xml))
-{
- plain_ = true;
-}
-
}
};
template<header::CommandHeader Header>
- class CommandTemplate : public Command {
+ class CommandTemplate0 : public Command {
public:
- CommandTemplate() :
+ CommandTemplate0() :
Command(Header, "") {}
};
- typedef CommandTemplate<header::ServerStartEncryptedSession> ServerStartEncryptedSession;
- typedef CommandTemplate<header::ClientStartEncryptedSession> ClientStartEncryptedSession;
- typedef CommandTemplate<header::ClientRequestedPublicKey> ClientRequestedPublicKey;
- typedef CommandTemplate<header::ClientRequestedClientInfo> ClientRequestedClientInfo;
- typedef CommandTemplate<header::ClientReceiveServerCrowdedError> ClientReceiveServerCrowdedError;
- typedef CommandTemplate<header::ServerRequestedFullServerInfo> ServerRequestedFullServerInfo;
- typedef CommandTemplate<header::ServerRequestedPlainFullServerInfo> ServerRequestedPlainFullServerInfo;
-
- // コネクションの切断
- class FatalConnectionError : public Command {
- public:
- FatalConnectionError();
- FatalConnectionError(uint32_t user_id);\r
- };
+ template<header::CommandHeader Header, class T1>
+ class CommandTemplate1 : public Command {
+ public:
+ CommandTemplate1(T1 t1) :
+ Command(Header, Utils::Serialize(t1)) {}
+ };
- // クライアントからの公開鍵を受信
- class ServerReceivePublicKey : public Command {
- public:
- ServerReceivePublicKey(const std::string& key);
- };
+ template<header::CommandHeader Header, class T1, class T2>
+ class CommandTemplate2 : public Command {
+ public:
+ CommandTemplate2(T1 t1, T2 t2) :
+ Command(Header, Utils::Serialize(t1, t2)) {}
+ };
- // サーバーからの共通鍵を受信
- class ClientReceiveCommonKey : public Command {
- public:
- ClientReceiveCommonKey(const std::string& key,
- const std::string& sign,
- uint32_t user_id);\r
- };
+ template<header::CommandHeader Header, class T1, class T2, class T3>
+ class CommandTemplate3 : public Command {
+ public:
+ CommandTemplate3(T1 t1, T2 t2, T3 t3) :
+ Command(Header, Utils::Serialize(t1, t2, t3)) {}
+ };
- // 他のプレイヤーの位置情報が更新された
- class ClientUpdatePlayerPosition : public Command {
- public:
- ClientUpdatePlayerPosition(uint32_t id, int16_t x, int16_t y, int16_t z, uint8_t theta, uint8_t vy);\r
- };
+ template<header::CommandHeader Header, class T1, class T2, class T3, class T4>
+ class CommandTemplate4 : public Command {
+ public:
+ CommandTemplate4(T1 t1, T2 t2, T3 t3, T4 t4) :
+ Command(Header, Utils::Serialize(t1, t2, t3, t4)) {}
+ };
- // プレイヤーの位置情報が更新された
- class ServerUpdatePlayerPosition : public Command {
- public:
- ServerUpdatePlayerPosition(int16_t x, int16_t y, int16_t z, uint8_t theta, uint8_t vy);\r
- };
+ template<header::CommandHeader Header, class T1, class T2, class T3, class T4, class T5>
+ class CommandTemplate5 : public Command {
+ public:
+ CommandTemplate5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) :
+ Command(Header, Utils::Serialize(t1, t2, t3, t4, t5)) {}
+ };
- // クライアントの情報を受信した (公開鍵のフィンガープリント, UDPポート)
- class ServerReceiveClientInfo : public Command {
- public:
- ServerReceiveClientInfo(const std::string& key, uint16_t version, uint16_t udp_port);
- };
+ template<header::CommandHeader Header, class T1, class T2, class T3, class T4, class T5, class T6>
+ class CommandTemplate6 : public Command {
+ public:
+ CommandTemplate6(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) :
+ Command(Header, Utils::Serialize(t1, t2, t3, t4, t5, t6)) {}
+ };
+
+ typedef CommandTemplate0<header::FatalConnectionError> FatalConnectionError;
+ typedef CommandTemplate0<header::ServerStartEncryptedSession> ServerStartEncryptedSession;
+ typedef CommandTemplate0<header::ClientStartEncryptedSession> ClientStartEncryptedSession;
+ typedef CommandTemplate0<header::ClientRequestedPublicKey> ClientRequestedPublicKey;
+ typedef CommandTemplate0<header::ClientRequestedClientInfo> ClientRequestedClientInfo;
+ typedef CommandTemplate0<header::ClientReceiveServerCrowdedError> ClientReceiveServerCrowdedError;
+ typedef CommandTemplate0<header::ServerRequestedFullServerInfo> ServerRequestedFullServerInfo;
+ typedef CommandTemplate0<header::ServerRequestedPlainFullServerInfo> ServerRequestedPlainFullServerInfo;
- class ServerRequestedAccountRevisionPatch : public Command {
- public:
- ServerRequestedAccountRevisionPatch(uint32_t user_id, int revision);\r
- };
+ typedef CommandTemplate1<header::ServerReceivePublicKey,
+ const std::string&> ServerReceivePublicKey;
- // アカウントデータベースの更新データ
- class ClientReceiveAccountRevisionPatch : public Command {
- public:
- ClientReceiveAccountRevisionPatch(const std::string& patch);
- };
+ typedef CommandTemplate1<header::ClientReceiveAccountRevisionPatch,
+ const std::string&> ClientReceiveAccountRevisionPatch;
- // アカウントデータベースの更新通知
- class ClientReceiveAccountRevisionUpdateNotify : public Command {
- public:
- ClientReceiveAccountRevisionUpdateNotify(uint32_t user_id, int revision);\r
- };
+ typedef CommandTemplate6<header::ClientUpdatePlayerPosition,
+ uint32_t, int16_t, int16_t, int16_t, uint8_t, uint8_t> ClientUpdatePlayerPosition;
- class ClientReceiveWriteAverageLimitUpdate : public Command {
- public:
- ClientReceiveWriteAverageLimitUpdate(uint16_t byte);\r
- };
+ typedef CommandTemplate5<header::ServerUpdatePlayerPosition,
+ int16_t, int16_t, int16_t, uint8_t, uint8_t> ServerUpdatePlayerPosition;
- class ClientReceiveUnsupportVersionError : public Command {
- public:
- ClientReceiveUnsupportVersionError(uint32_t require_version);
- };
+ typedef CommandTemplate2<header::ServerRequestedAccountRevisionPatch,
+ uint32_t, int> ServerRequestedAccountRevisionPatch;
- class ServerReceiveAccountInitializeData : public Command {
- public:
- ServerReceiveAccountInitializeData(const std::string& data);
- };
+ typedef CommandTemplate2<header::ClientReceiveAccountRevisionUpdateNotify,
+ uint32_t, int> ClientReceiveAccountRevisionUpdateNotify;
- class ServerUpdateAccountProperty : public Command {
- public:
- ServerUpdateAccountProperty(AccountProperty uint16_t, const std::string& value);\r
- };
+ typedef CommandTemplate3<header::ClientReceiveCommonKey,
+ const std::string&, const std::string&, uint32_t> ClientReceiveCommonKey;
+
+ typedef CommandTemplate2<header::ServerUpdateAccountProperty,
+ AccountProperty, const std::string&> ServerUpdateAccountProperty;
- class ServerReceiveJSON : public Command {
- public:
- ServerReceiveJSON(const std::string& json);
- };
+ typedef CommandTemplate3<header::ServerReceiveClientInfo,
+ const std::string&, uint16_t, uint16_t> ServerReceiveClientInfo;
- class ClientReceiveJSON : public Command {
- public:
- ClientReceiveJSON(const std::string& info_json, const std::string& message_json);
- };
+ typedef CommandTemplate1<header::ClientReceiveWriteAverageLimitUpdate,
+ uint16_t> ClientReceiveWriteAverageLimitUpdate;
- class ClientReceiveServerInfo : public Command {
- public:
- ClientReceiveServerInfo(const std::string& stage);
- };
+ typedef CommandTemplate1<header::ClientReceiveUnsupportVersionError,
+ uint32_t> ClientReceiveUnsupportVersionError;
- class ClientReceiveFullServerInfo : public Command {
- public:
- ClientReceiveFullServerInfo(const std::string& xml);
- };
+ typedef CommandTemplate1<header::ServerReceiveAccountInitializeData,
+ const std::string&> ServerReceiveAccountInitializeData;
+
+ typedef CommandTemplate1<header::ServerReceiveJSON,
+ const std::string&> ServerReceiveJSON;
+
+ typedef CommandTemplate2<header::ClientReceiveJSON,
+ const std::string&, const std::string&> ClientReceiveJSON;
+
+ typedef CommandTemplate1<header::ClientReceiveServerInfo,
+ const std::string&> ClientReceiveServerInfo;
+
+ typedef CommandTemplate1<header::ClientReceiveFullServerInfo,
+ const std::string&> ClientReceiveFullServerInfo;
+
+ typedef CommandTemplate1<header::UserFatalConnectionError,
+ uint32_t> UserFatalConnectionError;
- class ClientReceivePlainFullServerInfo : public Command {
- public:
- ClientReceivePlainFullServerInfo(const std::string& xml);
- };
}