/* * @file LevelMatching.hpp * @brief * * レベルによるマッチング処理 * * Copyright MONOBIT Inc. All rights reserved. */ #ifndef __LEVEL_MATCHING_HPP__ #define __LEVEL_MATCHING_HPP__ #include "./MatchingBase.hpp" class LevelMatching : public MatchingBase { public: // テーブル作成情報構造体 struct CreateTableInfo { uint32 level; // レベル }; // 検索用ルーム情報構造体 struct SearchRoomInfo { RoomInfo roomInfo; // ルーム情報 }; typedef std::vector<SearchRoomInfo> SearchRoomInfoList; // 検索用ルーム情報リスト型 public: /** * コンストラクタ */ LevelMatching(); /** * デストラクタ */ virtual ~LevelMatching(); /** * ルームの新規作成 * * @info 所有者の入室も同時に行う * * @param createRoomInfo ルーム作成情報 * @param pCreateTableInfo テーブル作成情報 * * @return trueなら成功、falseなら失敗 */ virtual bool CreateRoom( CreateRoomInfo& createRoomInfo, CreateTableInfo* pCreateTableInfo ); /** * ルームの検索 * * @param level_min レベル最小値 * @param level_max レベル最大値 * @param searchRoomInfoList 検索用ルーム情報リスト * @param limit 最大数 * @param offset 開始オフセット * * @return trueなら成功、falseなら失敗 */ virtual bool SearchRoom( uint32 level_min, uint32 level_max, SearchRoomInfoList& searchRoomInfoList, uint32 limit = 0, uint32 offset = 0 ); protected: /** * テーブル作成クエリ * * @return trueなら成功、falseなら失敗 */ virtual bool QueryCreateTable(); /** * ルーム作成クエリ * * @param createRoomInfo ルーム作成情報 * @param pArg 汎用引数 * * @return trueなら成功、falseなら失敗 */ virtual bool QueryCreateRoom( CreateRoomInfo& createRoomInfo, void* pArg ); /** * ルームの削除クエリ * * @param roomId ルームID * * @return trueなら成功、falseなら失敗 */ virtual bool QueryDeleteRoom( uint64 roomId ); }; #endif