HIVE SDK for C++

HIVE_MatchMaking.h
1//
2// HIVE_MatchMaking.hpp
3// HIVE_SDK_Plugin
4//
5// Created by jschoi on 2024/09/26.
6//
7
8
9#ifndef __HIVE_MATCH_MAKING_H__
10#define __HIVE_MATCH_MAKING_H__
11
12#include "HIVE_AuthV4.h" // hive::PlayerID
13#include "HIVE_ResultAPI.h"
14#include <map>
15
16NS_HIVE_BEGIN
17
18typedef long long PlayerID;
19
20class ResultAPI;
21
22class MatchMakingData;
25class MatchingResultPlayerInfo;
26class MatchingResultTeamInfo;
27
44class HIVESDK_DLLEXPORT MatchMaking
45{
46public:
47
48 typedef std::function<void(ResultAPI const & result)> onMatchMakingResult;
49
50 typedef std::function<void(ResultAPI const & result, MatchMakingData const & matchMakingData)> onMatchMakingData;
51
52 typedef std::function<void(ResultAPI const & result, MatchMakingGroupData const & matchMakingGroupData)> onMatchMakingGroupData;
53
54
74 static void requestMatchMaking(int matchId, int point, const char * extraData, onMatchMakingData listener);
75
91 static void getRequestingStatus(int matchId, onMatchMakingData listener);
92
108 static void deleteRequesting(int matchId, onMatchMakingResult listener);
109
110
126 static void createGroup(int matchId, int point, const char * extraData, onMatchMakingGroupData listener);
127
143 static void joinGroup(int matchId, const char * groupCode, int point, const char * extraData, onMatchMakingGroupData listener);
144
160 static void leaveGroup(int matchId, onMatchMakingResult listener);
161
177 static void kickGroupUser(int matchId, PlayerID targetPlayerId, onMatchMakingGroupData listener);
178
194 static void getGroupInfoByUser(int matchId, onMatchMakingGroupData listener);
195
211 static void getGroupInfoByGroupCode(const char * groupCode, onMatchMakingGroupData listener);
212
228 static void updateGroupUser(int matchId, bool ready, int point, const char * extraData, onMatchMakingGroupData listener);
229
245 static void requestGroupMatching(int matchId, onMatchMakingGroupData listener);
246
262 static void deleteGroupMatching(int matchId, onMatchMakingGroupData listener);
263
264
265 // \~korean Native 영역에서 호출된 요청을 처리하기 위한 플러그인 내부 코드
266 // \~english Plug-in internal code to handle requests invoked from the native code.
267 static void executeEngine(picojson::value jsonParam);
268
269};
270
276class HIVESDK_DLLEXPORT MatchingMemberInfo {
277public:
278 // 플레이어 ID / Player ID
279 hive::PlayerID playerId;
280 // 준비 상태 (빈값인 경우 false) / Ready Status (false if empty)
281 bool ready;
282 // 매칭 포인트 / Matching Point
283 int point;
284 // 추가 데이터 (선택사항) / Extra Data (nickName, Level, Etc..)
285 std::string extraData;
286
288
289 bool parse(picojson::value jsonParam);
290 picojson::object toJson() const;
291 std::string toString() const;
292};
293
299class HIVESDK_DLLEXPORT MatchMakingGroupData {
300public:
301 // 그룹 코드 / Group Code
302 std::string groupCode;
303 // 그룹 소유자 플레이어 ID / Group Owner Player ID
304 hive::PlayerID ownerPlayerId;
305
306 // 매칭 멤버 정보 리스트 / Matching Member Information List
307 std::vector<MatchingMemberInfo> memberInfoList;
308
309 // 게임인덱스 / Game Index
310 int requestGameIndex;
311 // 매치 ID / Match ID
312 int requestMatchId;
313
314 // 매칭 요청 상태 / Matching Request Status
315 std::string requestStatus;
316 // 요청 시각 (UTC) String / Request Time (UTC) String
317 std::string requestTimeUtc;
318
319 // 매칭 상태 / Matching Status
320 std::string matchingStatus;
321 // 매칭 ID / Matching ID
322 std::string matchingId;
323 // 매칭 타입 / Matching Type
324 std::string matchingType;
325
326 // 매칭 팀 정보 리스트 / Matching Team Information List
327 std::vector<MatchingResultTeamInfo> matchingTeamInfoList;
328
330
331 bool parse(picojson::value jsonParam);
332 picojson::object toJson() const;
333 std::string toString() const;
334};
335
336
342class HIVESDK_DLLEXPORT MatchMakingData {
343public:
344 hive::PlayerID requestPlayerId;
345 int requestGameIndex;
346 int requestMatchId;
347
348 std::string requestStatus;
349 std::string requestTimeUtc;
350 int requestPoint;
351 std::string requestExtraData;
352
353 std::string matchingStatus;
354 std::string matchingId;
355 std::string matchingType;
356
357 std::vector<MatchingResultPlayerInfo> matchingPlayerInfoList;
358 std::vector<MatchingResultTeamInfo> matchingTeamInfoList;
359
361
362 bool parse(picojson::value jsonParam);
363 picojson::object toJson() const;
364 std::string toString() const;
365};
366
367
368class HIVESDK_DLLEXPORT MatchingResultPlayerInfo {
369public:
370 hive::PlayerID playerId;
371 int point;
372 std::string extraData;
373
374 MatchingResultPlayerInfo();
375
376 bool parse(picojson::value jsonParam);
377 picojson::object toJson() const;
378 std::string toString() const;
379};
380
381class HIVESDK_DLLEXPORT MatchingResultTeamInfo {
382public:
383 int teamIndex;
384 std::vector<MatchingResultPlayerInfo> playerInfos;
385
386 MatchingResultTeamInfo();
387
388 bool parse(picojson::value jsonParam);
389 picojson::object toJson() const;
390 std::string toString() const;
391};
392
393// MARK: -
394NS_HIVE_END // namespace hive
395
396
397#endif // __HIVE_MATCH_MAKING_H__
398
399
Match Making 콜백 데이터 정보
Definition: HIVE_MatchMaking.h:342
매치 메이킹 그룹 데이터 정보
Definition: HIVE_MatchMaking.h:299
Hive MatchMaking은 온라인 매치를 위해 플레이어를 연결하고 관련 데이터를 제공합니다.
Definition: HIVE_MatchMaking.h:45
static void getGroupInfoByUser(int matchId, onMatchMakingGroupData listener)
그룹 정보 조회 (그룹 내 유저 기준)
static void getGroupInfoByGroupCode(const char *groupCode, onMatchMakingGroupData listener)
그룹 정보 조회 (그룹 코드 기준)
static void requestGroupMatching(int matchId, onMatchMakingGroupData listener)
그룹 매칭 요청
static void createGroup(int matchId, int point, const char *extraData, onMatchMakingGroupData listener)
매칭 그룹 생성
static void getRequestingStatus(int matchId, onMatchMakingData listener)
매칭 상태 확인
static void kickGroupUser(int matchId, PlayerID targetPlayerId, onMatchMakingGroupData listener)
그룹원 추방
static void requestMatchMaking(int matchId, int point, const char *extraData, onMatchMakingData listener)
매칭 요청
static void deleteRequesting(int matchId, onMatchMakingResult listener)
매칭 요청 삭제
static void joinGroup(int matchId, const char *groupCode, int point, const char *extraData, onMatchMakingGroupData listener)
매칭 그룹 참여
static void leaveGroup(int matchId, onMatchMakingResult listener)
매칭 그룹 탈퇴
static void updateGroupUser(int matchId, bool ready, int point, const char *extraData, onMatchMakingGroupData listener)
멤버 정보 수정
static void deleteGroupMatching(int matchId, onMatchMakingGroupData listener)
그룹 매칭 요청 취소
매치 메이킹 그룹 멤버 정보
Definition: HIVE_MatchMaking.h:276
Definition: HIVE_ResultAPI.h:64
Copyright © Com2uS Platform Corporation. All Right Reserved. 이용약관 개인정보 처리방침