<?php
/**
 * App.php UTF-8
 * APP事件处理
 *
 * @date    : 2018/5/30 16:43
 *
 * @license 这不是一个自由软件,未经授权不许任何使用和传播。
 * @author  : wuyonghong <wyh@huosdk.com>
 * @version : HUOSDK 8.0
 */

namespace huolib\queue\controller\sdk;

use huolib\queue\request\Channel;
use huolib\queue\request\Common;
use huolib\queue\request\Crash;
use huolib\queue\request\Device;
use huolib\queue\request\Game;

class App {
    /**
     * app激活
     * 记录客户端被激活日志,用户下载APP后第一次打开客户端时调用。
     * http://doc.1tsdk.com/138?page_id=3375
     *
     * @param Common          $com_rq
     * @param Device          $device_rq
     * @param Game            $game_rq
     * @param Channel $agent_rq
     *
     * @return bool
     */
    public function activation(Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq) {
        return (new \huo\controller\data\App())->activation($com_rq,$device_rq,$game_rq,$agent_rq);
    }

    /**
     * app启动
     * 记录客户端被启动日志,用户激活客户端后,每次跳转到SDK登录界面时调用。
     *
     * http://doc.1tsdk.com/138?page_id=3376
     * @param Common          $com_rq
     * @param Device          $device_rq
     * @param Game            $game_rq
     * @param Channel $agent_rq
     *
     * @return bool
     */
    public function startup(Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq) {
        return (new \huo\controller\data\App())->startup($com_rq,$device_rq,$game_rq,$agent_rq);

    }

    /**
     * app崩溃
     * 记录客户端异常的日志,用户激活无法跳转到SDK登录界面、闪退等异常情况时调用。
     * http://doc.1tsdk.com/138?page_id=3377
     *
     * @param Common          $com_rq
     * @param Device          $device_rq
     * @param Game            $game_rq
     * @param Channel $agent_rq
     * @param Crash           $crash_rq
     *
     * @return bool
     */
    public function crash(Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq, Crash $crash_rq) {
        return (new \huo\controller\data\App())->crash($com_rq,$device_rq,$game_rq,$agent_rq,$crash_rq);
    }

    /**
     * app心跳
     * 客户端每2分钟上报一次客户端活跃状态的事件
     * http://doc.1tsdk.com/138?page_id=3378
     *
     * @param Common          $com_rq
     * @param Device          $device_rq
     * @param Game            $game_rq
     * @param Channel $agent_rq
     *
     * @return bool
     */
    public function heartbeat(Common $com_rq, Device $device_rq, Game $game_rq, Channel $agent_rq) {
        return (new \huo\controller\data\App())->heartbeat($com_rq,$device_rq,$game_rq,$agent_rq);
    }
}