/* app/KMApplication.h
 *
 * Copyright (C) 2023 OpenKylin, Inc
 */

#ifndef __KMAPPLICATION_H__
#define __KMAPPLICATION_H__

#include <memory>

#include "common/KMSingleton.h"

/**
 * @brief 	 app框架类
 */
class KMApplication : public KMSingleton<KMApplication>
{
public:
    KMApplication(token, int argc, char **argv);
    ~KMApplication();

    void init();
    int exec();

private:
    class Options;
    class Private;
    std::unique_ptr<Private> d;
};

#endif // !__KMAPPLICATION_H__
