//
//  KGLog.h
//  KakaoGame SDK
//
//  Created by Ronaldo Kim on 2016. 9. 19..
//  Copyright (c) 2016. Kakao Corp. All rights reserved.
//

#import <KakaoGame/KGPlayerGameData.h>

/**
 * @brief KGLog클래스는 게임 로그를 서버에 전송 기능을 제공한다.
 */
@interface KGLog : NSObject

/**
 * @brief 게임의 액션 로그를 서버로 전송한다.
 *
 * @param logBody 로그 dictionary.
 * @param completionHandler 완료 핸들러 [error:로그 전송 결과].
 */
+ (void)writeActionLogWithBody:(NSDictionary *)logBody completionHandler:(void(^)(NSError *error))completionHandler;

/**
 * @brief 게임의 네트워크 로그를 서버로 전송한다.
 *
 * @param logBody 로그 dictionary.
 * @param completionHandler 완료 핸들러 [error:로그 전송 결과].
 */
+ (void)writeNetworkLogWithBody:(NSDictionary *)logBody completionHandler:(void(^)(NSError *error))completionHandler;

/**
 * @brief 게임의 라운드 로그를 서버로 전송한다.
 *
 * @param logBody 로그 dictionary.
 * @param completionHandler 완료 핸들러 [error:로그 전송 결과].
 */
+ (void)writeRoundLogWithBody:(NSDictionary *)logBody completionHandler:(void(^)(NSError *error))completionHandler;

/**
 * @brief 게임의 리소스 로그를 서버로 전송한다.
 *
 * @param logBody 로그 dictionary.
 * @param completionHandler 완료 핸들러 [error:로그 전송 결과].
 */
+ (void)writeResourceLogWithBody:(NSDictionary *)logBody completionHandler:(void(^)(NSError *error))completionHandler;

/**
 * @brief 게임의 아이템 로그를 서버로 전송한다.
 *
 * @param logBody 로그 dictionary.
 * @param completionHandler 완료 핸들러 [error:로그 전송 결과].
 */
+ (void)writeItemLogWithBody:(NSDictionary *)logBody completionHandler:(void(^)(NSError *error))completionHandler;

+ (NSError *)startLatencyCheckWithCategory:(NSString *)category
                                    action:(NSString *)action
                                     label:(NSString *)label __attribute__((deprecated));

+ (NSError *)startLatencyCheckWithCategory:(NSString *)category
                                    action:(NSString *)action __attribute__((deprecated));

+ (NSError *)stopLatencyCheckWithCategory:(NSString *)category
                                   action:(NSString *)action
                                    label:(NSString *)label __attribute__((deprecated));;

+ (NSError *)stopLatencyCheckWithCategory:(NSString *)category
                                   action:(NSString *)action __attribute__((deprecated));;

+ (NSError *)accumulateValueWithCategory:(NSString *)category
                                  action:(NSString *)action
                                   label:(NSString *)label
                                   value:(long long)value __attribute__((deprecated));;

+ (NSError *)accumulateValueWithCategory:(NSString *)category
                                  action:(NSString *)action
                                   value:(long long)value __attribute__((deprecated));;

+ (KGPlayerGameData *)playerGameData __attribute__((deprecated));;

@end
