/*
 * @Description: 检查处
 * @Version: 1.0
 * @Autor: lishengyin
 * @Date: 2022-04-02 14:16:08
 * @LastEditors: lishengyin
 * @LastEditTime: 2022-06-08 11:55:59
 */
#ifndef __INSPECTOR_HPP_
#define __INSPECTOR_HPP_

#include <iostream>
#include "ins_module.hpp"
#include "Util/logger.h"
#include "Util/NoticeCenter.h"

using namespace std;

namespace ins{

    class Inspector:public Module
    {
    private:
        Inspector():Module("Inspector"){
            Init();
        }
    public:
        using Ptr = std::shared_ptr<Inspector>;
        
        ~Inspector(){this->Destroy();}

        /**
         * @description: 获取ptr
         * @param {*}
         * @return {*}
         */        
        static std::shared_ptr<Inspector> getPtr();

        /**
         * @description: 检查模块
         * @param {*}
         * @return {*}
         */        
        int8_t CheckModule();

        /**
         * @description: 初始化
         * @param {*}
         * @return {*}
         */        
        int8_t Init() override;

        /**
         * @description: 释放
         * @param {*}
         * @return {*}
         */        
        void Destroy() override;

        /**
         * @description: 是否正常
         * @param {*}
         * @return {*}
         */        
        bool isNormally() override{
            return true;
        }
    };
};




#endif