/*! \mainpage Matchmaking SDK
*
* \section intro_sec 매치메이킹 시스템
*	- 게임 유저들이 함께 게임을 즐길 수 있도록 유저들을 한 곳(로비)으로 모아 주는 시스템입니다.
*
* \subsection step1 소개
*	- 매치메이킹 Client는 SDK 형태로 제공되며 게임 클라이언트에서 SDK를 직접 호출하여 사용합니다.
*	- 로비에 메타 데이터를 추가하고, 이것을 검색 데이터로 사용합니다.
*	- Stat System이나 랭킹에서 내 데이터를 가져와서 로비에 메타 데이터로 추가할 수 있습니다.
*	- 유저는 로비를 검색하고 조건에 원하는 로비에 입장합니다.
*	- 내가 참여한 로비로 다른 유저를 초대할 수 있습니다.
*	- 로비 내에서 데이터 브로드캐스팅 혹은 채팅을 지원합니다.
*
* \subsection step2 제공 파일
* c/c++ 로 작성된 Native dll 입니다.<BR>
* StovePCMatchmaking.dll은 dllimport(pinvoke)하여 C#/Unity 등에서 사용할 수 있습니다.<BR>
*	- 헤더 파일
*		- StovePCMatchmakingSDK.h
*		- StovePCMatchmakingCallback.h
*		- StovePCMatchmakingDefine.h
*	- 바이너리 파일 ( 32/64bit 용 )
*		- StovePCMatchmaking64.lib
*		- StovePCMatchmaking64.dll
*
* \subsection step3 주요 기능 소개
*	-# 매치메이킹 서버 접속
*		- ::StovePCMatchmaking_Connect 매치메이킹 서버에 접속합니다.
*	-# 로비 생성
*		- ::StovePCMatchmaking_CreateLobby 로 로비를 생성합니다.
*		- 생성하고자 하는 로비의 제목을 입력합니다.
*	-# 로비 메타 데이터
*		- ::StovePCMatchmaking_SetLobbyData 로 로비에 메타 데이터를 추가 / 수정할 수 있습니다.
*			-# 추가한 메타 데이터는 로비 검색시 활용됩니다.
*		- ::StovePCMatchmaking_GetLobbyData 로 로비 메타 데이터를 확인할 수 있습니다.
*	-# 로비 검색
*		- ::StovePCMatchmaking_RequestLobbyList 로 로비를 검색할 수 있습니다.
*			-# ::StovePCMatchmaking_AddRequestLobbyListFilter 로 검색 조건을 추가할 수 있습니다.
*			-# 어떤 검색 조건도 없을시 전체 로비를 검색합니다.
*		- ::StovePCMatchmaking_AddRequestLobbyListFilter 로 로비 검색 조건을 추가합니다.
*			-# 중첩 호출 가능하며, 중첩시마다 앞의 검색 조건에 and 연산으로 추가됩니다.
*			-# ::StovePCMatchmaking_RequestLobbyList 가 호출되면 로비 검색 조건은 초기화됩니다.
*			-# 예시 :
*				-# ::StovePCMatchmaking_AddRequestLobbyListFilter("map", "1", "=");
*				-# ::StovePCMatchmaking_AddRequestLobbyListFilter("mode", "2", "=");
*				-# ::StovePCMatchmaking_RequestLobbyList();
*				-# "map = 1 and mode = 2" 로 로비 검색 요청
*	-# 로비 입장 / 랜덤 입장
*		- ::StovePCMatchmaking_JoinLobby 로 로비명을 입력하여 참여합니다.
*		- ::StovePCMatchmaking_JoinRandomLobby 로 검색 조건을 입력하여 로비에 참여합니다.
*			- 검색 조건에 맞는 로비중 하나에 자동으로 참여합니다.
*			- 검색 조건에 맞는 로비가 없을시 자동으로 로비를 생성합니다.
*	-# 유저 메타 데이터
*		- 로비 입장 시 유저별로 메타 데이터 저장소가 할당됩니다.
*		- ::StovePCMatchmaking_SetLobbyUserdata 로 나의 메타 데이터를 추가 / 수정할 수 있습니다.
*			- 추가/수정한 내 유저 데이터는 로비내 모든 유저에게 브로드캐스팅됩니다.
*		- ::StovePCMatchmaking_GetLobbyUserList 로 로비 내 모든 유저의 정보 및 메타 데이터를 확인할 수 있습니다.
*			- 로비에 입장한 순서대로 유저 리스트를 반환합니다.
*	-# 로비 내 데이터 송신
*		- ::StovePCMatchmaking_SendLobbyBinarydata 로 로비 내 유저에게 바이너리 데이터를 송신할 수 있습니다.
*	-# 로비 내 메시지 송신
*		- ::StovePCMatchmaking_SendLobbyMsg 로 로비 내 모든 유저에게 메시지를 송신할 수 있습니다.
*	-# 콜백 가져오기
*		- 서버에서 수신한 콜백 함수를 호출합니다.
*		- ::StovePCMatchmaking_RunCallback 를 호출 전까지 콜백 함수는 호출되지 않습니다.
*/
#ifndef STOVEPCMATCHMAKINGSDK_H_
#define STOVEPCMATCHMAKINGSDK_H_

#ifdef STOVEPCMATCHMAKINGSDK_EXPORTS
#define STOVEPCMATCHMAKINGSDK_API __declspec(dllexport)
#else
#define STOVEPCMATCHMAKINGSDK_API __declspec(dllimport)
#endif

/*! \file
* \brief StovePCMatchmaking API를 정의한 헤더입니다.
*/
#include "StovePCMatchmakingDefine.h"

/*! \defgroup Matchmaking Matchmaking API
*  \brief StovePCMatchmaking SDK 인터페이스를 설명합니다.
*/

extern "C"
{
	// 전방 선언
	struct StovePCMatchmakingCallback;

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 라이브러리를 초기화합니다.
	* @param[in] config 매치메이킹 설정 정보
	* @param[in] loglevel 로그 레벨
	* @return bool 초기화 성공유무
	*/
	STOVEPCMATCHMAKINGSDK_API bool StovePCMatchmaking_Init(const StovePCMatchmakingLogLevel loglevel);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* SDK에서 할당한 모든 리소스를 해제합니다.
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_UnInit();
	
	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* StovePCMatchmakingSDK의 콜백을 등록합니다.
	* @param[in] callback 매치메이킹 콜백 정보
	*/	
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_RegisterCallback(const StovePCMatchmakingCallback& callback);	

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 매치메이킹 서버에 접속 합니다.<BR>
	* OnConnect이 호출됩니다.
	* @param[in] accessToken 회원 엑세스 토큰
	* @param[in] UID 매치메이킹 서버에 접속하기 위한 유저 아이디
	* @param[in] nickname 유저 닉네임
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_Connect(const wchar_t* nickname);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 매치메이킹 서버에 접속을 종료합니다.<BR>
	* OnDisconnect이 호출됩니다.<BR>
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_Disconnect();

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 매치메이킹 서버 접속 상태를 알려줍니다.
	* @return ::StovePCMatchmakingConnectionState 서버 접속상태
	*/
	STOVEPCMATCHMAKINGSDK_API StovePCMatchmakingConnectionState StovePCMatchmaking_GetConnectionState();

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 서버에서 수신한 콜백 함수를 호출합니다. <BR>
	* 큐에 쌓인 모든 콜백함수를 가져옵니다.  <BR>	
	* 콜백 함수는 StovePCMatchmaking_RunCallback가 실행된 스레드에 호출됩니다.
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_RunCallback();

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 검색 조건을 추가합니다.
	* 중첩 호출할 수 있으며, 중첩시마다 앞의 검색 조건에 "AND" 논리 연산이 됩니다.<BR>
	*	- 예시 : "map = 1 and mode = 2" 인 로비 검색
	*		-# ::StovePCMatchmaking_AddRequestLobbyListFilter("map", "1", "=");
	*		-# ::StovePCMatchmaking_AddRequestLobbyListFilter("mode", "2", "=");
	*		-# ::StovePCMatchmaking_RequestLobbyList()
	* ::StovePCMatchmaking_RequestLobbyList 가 호출되면 로비 검색 조건은 초기화됩니다.<BR>
	* @param[in] keyToMatch 메타 데이터 키
	* @param[in] valueToMatch 메타 데이터 값
	* @param[in] oper 비교 연산자 [ = != <> > >= < <= ]
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_AddRequestLobbyListFilter(const wchar_t* keyToMatch, const wchar_t* valueToMatch, const StovePCMatchmakingComparisonType oper);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 사용자가 검색 조건에 부합하는 로비를 찾습니다. <BR>
	*	- 검색 조건이 없을시 모든 로비에 대한 검색을 수행합니다.
	*	- ::StovePCMatchmaking_AddRequestLobbyListFilter 로 로기 검색 조건을 추가합니다.
	*	- 예시 : "map = 1 and mode = 2" 인 로비 검색
	*		-# ::StovePCMatchmaking_AddRequestLobbyListFilter("map", "1", "=");
	*		-# ::StovePCMatchmaking_AddRequestLobbyListFilter("mode", "2", "=");
	*		-# ::StovePCMatchmaking_RequestLobbyList()
	*	- 호출후 기존 로비 검색 조건은 초기화됩니다.
	* 시작 오프셋부터 최근 생성 로비순으로 정렬됩니다. <BR>
	* OnRequestLobbyList이 호출됩니다.<BR>
	* @param[in] pageOffset 검색 페이지 시작위치 오프셋, 0 이하일시 기본값 ( 기본값 : 0 )
	* @param[in] maxCount 한번에 검색할 로비 개수
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_RequestLobbyList(const __int64 pageOffset, const int maxCount);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 내가 속한 로비 정보를 요청합니다. <BR>
	* OnRequestMyLobbyList 이 호출됩니다.<BR>
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_GetMyLobbyList();

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비를 생성합니다. <BR>
	* 성공시 OnCreateLobby, OnJoinLobby, OnUserJoin, OnUpdateLobbyData 가 연속적으로 호출됩니다.<BR>
	* @param[in] title 만들고자 하는 로비의 제목
	* @param[in] password 암호 입력시 비공개 로비로 생성됩니다.
	* @param[in] maxUser 로비의 최대 인원수를 설정합니다.
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_CreateLobby(const wchar_t* title, const wchar_t* password, const int maxUser);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비에 참여합니다. 로비가 없을 경우 참여할 수 없습니다.<BR>
	* 성공시 OnJoinLobby, OnUserJoin 이 연속적으로 호출됩니다. 다른 유저는 OnUserJoin이 연속적으로 호출됩니다.<BR>
	* @param[in] lobby 참여하고자 하는 로비 아이디
	* @param[in] password 비공개 로비의 패스워드
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_JoinLobby(const wchar_t* lobby, const wchar_t* password);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 검색 조건에 맞는 로비에 참여합니다. 검색 조건에 맞는 로비중 하나에 자동으로 참여합니다.<BR>
	* 검색 조건에 맞는 로비가 없을시 자동으로 로비를 생성합니다.<BR>
	*	- 검색 조건은 비교 연산자는 "="만 지원하며, 배열 요소는 "AND" 로 연결됩니다.
	*	- 예시 : "map = 1 and mode = 2" 인 로비 참여
	*		-#StovePCMatchmakingMetadata ( key = "map", value = "1" )
	*		-#StovePCMatchmakingMetadata ( key = "mode", value = "2" )
	* 성공시 OnJoinLobby, OnUserJoin 이 연속적으로 호출됩니다. 다른 유저는 OnUserJoin이 호출됩니다.<BR>
	* @param[in] conditionArray 검색 조건. 비교 연산자는 "=" 고정이며, 각 배열 요소는 "AND"로 연결됩니다.
	* @param[in] conditionCount 검색 조건 배열 개수
	* @param[in] maxUser 로비를 생성할 경우 최대 유저수
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_JoinRandomLobby(const StovePCMatchmakingMetadata* conditionArray, const int conditionCount, const int maxUser);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 내 모든 유저에게 바이너리 데이터를 송신합니다. <BR>
	* OnSendLobbyBinarydata가 호출됩니다. 다른 유저는 OnRecvLobbyBinarydata가 콜백됩니다.<BR>
	* @param[in] lobby 바이너리 데이터를 보낼 로비 아이디
	* @param[in] data 송신 데이터 배열
	* @param[in] dataLength 송신 데이터 크기
	* @param[in] meta 바이너리외 송신할 데이터(json string, profile등을 상대방에게 보낼 수 있습니다)
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_SendLobbyBinarydata(const wchar_t* lobby, const unsigned char* data, const int dataLength, const wchar_t* meta);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 내 모든 유저에게 메시지를 송신합니다.<BR>
	* OnSendLobbyMessage이 호출됩니다. 다른 유저는 OnRecvLobbyMessage가 콜백됩니다.<BR>
	* @param[in] lobby 메시지를 송신할 로비 아이디
	* @param[in] message 송신 메시지
	* @param[in] meta 메시지외 송신할 데이터(json string, profile등을 상대방에게 보낼 수 있습니다)
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_SendLobbyMsg(const wchar_t* lobby, const wchar_t* message, const wchar_t* meta);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비에서 퇴장합니다.<BR>
	*	- 로비 내 아무도 없을시 로비는 제거됩니다.
	*	- 내가 방장일시 자동으로 다른 유저에게 방장이 인계됩니다. ( OnUpdateLobbyUser 콜백 호출 )
	* OnLeaveLobby이 호출됩니다. 다른 유저는 OnUserLeave가 호출됩니다.<BR>
	* @param[in] lobby 나가고자 하는 로비 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_LeaveLobby(const wchar_t* lobby);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비를 삭제합니다. 방장만 할 수 있습니다.<BR>
	* OnDestroyLobby, OnLeaveLobby 이 연속적으로 호출됩니다. 다른 유저는 OnLeaveLobby이 호출됩니다.<BR>
	* @param[in] lobby 삭제하고자 하는 로비 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_DestroyLobby(const wchar_t* lobby);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 내 다른 유저를 방장으로 지정합니다. 방장만 할 수 있습니다.<BR>
	* 나의 등급과 상대 등급이 교환됩니다.<BR>
	* OnSetLobbyOwner이 호출됩니다. 나의 등급변경을 OnUpdateLobbyUser로, 방장 이양자의 등급변경을 OnUpdateLobbyUser로 알립니다. <BR>
	* @param[in] lobby 로비 아이디
	* @param[in] UID 방장을 넘겨줄 로비 내 유저 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_SetLobbyOwner(const wchar_t* lobby, const unsigned __int64 UID);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비에 초대합니다.<BR>
	* OnSendLobbyInvitation이 호출됩니다. 피초청인은 OnRecvLobbyInvitation이 호출됩니다.<BR>
	* @param[in] lobby 초대하고자 하는 로비 아이디
	* @param[in] UID 초대할 유저 아이디
	* @param[in] message 초대 메시지 혹은 패스워드
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_SendLobbyInvitation(const wchar_t* lobby, const unsigned __int64 UID, const wchar_t* message);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 초대를 거절합니다. <BR>
	* OnSendRejectLobbyInvitation이 호출됩니다. 초청인에게도 OnRecvRejectLobbyInvitation이 호출됩니다.<BR>
	* @param[in] lobby 초대한 로비 아이디
	* @param[in] UID 초대한 유저 정보
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_SendRejectLobbyInvitation(const wchar_t* lobby, const unsigned __int64 UID);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	*  로비에 참여중인 유저를 추방합니다.<BR>
	*  OnKickUser이 호출됩니다. kick 대상자는 OnLeaveLobby, 다른 로비 유저는 OnUserLeave가 호출됩니다.<BR>
	*  @param[in] lobby 추방할 로비 아이디
	*  @param[in] UID 추방할 유저 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_KickUser(const wchar_t* lobby, const unsigned __int64 UID);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	*  유저가 로비에 있을 경우 추방하며, 이후 로비 접속을 제한합니다.<BR>
	*  OnBanUser이 호출됩니다. ban 대상자는 OnLeaveLobby, 다른 로비 유저는 OnUserLeave가 호출됩니다.<BR>
	*  @param[in] lobby 밴 할 로비 아이디
	*  @param[in] UID 밴 할 유저 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_BanUser(const wchar_t* lobby, const unsigned __int64 UID);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	*  로비에서 추방한 유저를 로비 접속 제한에서 해제합니다.<BR>
	*  OnUnBanUser이 호출됩니다.
	*  @param[in] lobby 밴을 해제할 로비 아이디
	*  @param[in] UID 밴을 해제할 유저 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_UnBanUser(const wchar_t* lobby, const unsigned __int64 UID);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 메타 데이터를 추가/수정 합니다. 로비 소유자만 (방장) 할 수 있습니다. <BR>
	* OnUpdateLobbyData, OnSetLobbyData 가 연속적으로 호출됩니다. 다른 유저는 OnUpdateLobbyData가 호출됩니다.<BR>
	* @param[in] lobby 로비 아이디
	* @param[in] key 로비 설정 키
	* @param[in] value 로비 설정 값
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_SetLobbyData(const wchar_t* lobby, const wchar_t* key, const wchar_t* value);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 메타 데이터를 확인합니다. 내가 참여한 로비만 확인할 수 있습니다.<BR>
	* OnGetLobbydata 가 호출됩니다. <BR>
	* @param[in] lobby 참여한 로비 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_GetLobbyData(const wchar_t* lobby);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 나의 메타 데이터를 추가/수정 합니다. <BR>
	* 로비 입장시 개개인의 유저 설정 데이터 저장소가 할당됩니다. <BR>
	* OnUpdateLobbyUser, OnSetLobbyUserdata가 연속적으로 호출됩니다. 다른 유저는 OnUpdateLobbyUser가 호출됩니다.<BR>
	* @param[in] lobby 참여한 로비 아이디
	* @param[in] key 유저 설정 데이터 키
	* @param[in] value 유저 설정 데이터 값
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_SetLobbyUserdata(const wchar_t* lobby, const wchar_t* key, const wchar_t* value);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 내 유저의 정보를 확인합니다. <BR>
	* OnGetLobbyUserList 가 호출됩니다.
	* @param[in] lobby 로비 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_GetLobbyUserList(const wchar_t* lobby);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 내 밴 유저의 정보를 확인합니다. <BR>
	* OnGetLobbyBanUserList 가 호출됩니다. <BR>
	* @param[in] lobby 로비 아이디
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_GetLobbyBanUserList(const wchar_t* lobby);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 게임 시작을 매치메이킹 서버에 알립니다. 로비 소유자만 (방장) 할 수 있습니다. <BR>
	* 더 이상 검색되지 않으며, 로비에 참여할 수 없습니다. <BR>
	* OnLobbyStartGame 가 호출됩니다. 다른 유저는 OnLobbyStartGame가 호출됩니다.<BR>
	* @param[in] lobby 게임 시작한 로비 아이디
	* @param[in] serverIP 게임 시작 시 접속할 게임 서버 아이피 (게임 서버 연동시만 사용)
	* @param[in] serverPort 게임 시작시 접속할 게임 서버 포트 (게임 서버 연동시만 사용)
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_StartGame(const wchar_t* lobby, const wchar_t* serverIP, const int serverPort);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 로비 게임 종료를 매치메이킹 서버에 알립니다. 로비 소유자만 (방장) 할 수 있습니다. <BR>
	* 로비는 자동으로 삭제됩니다. <BR>
	* OnLobbyEndGame, OnLeaveLobby 이 연속적으로 호출됩니다. 다른 유저는 OnLeaveLobby이 호출됩니다.
	* @param[in] lobby 참여한 로비 아이디
	* @param[in] serverIP 게임 종료시 접속 종료할 게임 서버 아이피 (게임 서버 연동시만 사용)
	* @param[in] serverPort 게임 종료시 접속 종료할 게임 서버 포트 (게임 서버 연동시만 사용)
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_EndGame(const wchar_t* lobby, const wchar_t* serverIP, const int serverPort);

	/*!
	\ingroup Matchmaking Matchmaking API
	*/
	/*!
	* 내 친구 정보를 요청합니다. <BR>
	* OnGetMyFriendList 이 호출됩니다.
	*/
	STOVEPCMATCHMAKINGSDK_API void StovePCMatchmaking_GetMyFriendList();


	STOVEPCMATCHMAKINGSDK_API unsigned __int64 StovePCMatchmaking_GetUID();

	STOVEPCMATCHMAKINGSDK_API int StovePCMatchmaking_GetLogLevel();
};

#endif //STOVEPCMATCHMAKINGSDK_H_