更新时间:2021-03-18 GMT+08:00
分享

AIAlgAPIFactory

ALG的API注册工厂类。该类在ai_alg_api.h中定义。

    class AIAlgAPIFactory
    {
    public:
        static AIAlgAPIFactory* GetInstance();

        /*
        * @brief 获取API
        * @param [in] name api名称
        * @return API原型指针
        */
        AI_ALG_API GetAPI(const std::string &name);

        /*
        * @brief 注册API
        * @param [in] desc api描述
        * @param [in] func api定义
        * @return SUCCESS 成功
        * @return 其他    失败
        */
        AIStatus RegisterAPI(const AIAPIDescription &desc, AI_ALG_API func);

        /*
        * @brief 获取所有API描述
        * @param [in] api_desc_list api描述列表
        */
        void GetAllAPIDescription(AIAPIDescriptionList &api_desc_list);

        /*
        * @brief 卸载注册API
        * @param [in] api_desc api描述
        */
        AIStatus UnRegisterApi(const AIAPIDescription &api_desc);

        /*
        * @brief 获取API描述
        * @param [in] name api名称
        * @param [in] api_desc api描述
        * @return SUCCESS 成功
        * @return 其他    失败
        */
        AIStatus GetAPIDescription(const std::string &name, AIAPIDescription &api_desc);

    private:
        std::map<std::string, AI_ALG_API> func_map_;
        std::map<std::string, AIAPIDescription> desc_map_;
        std::mutex api_reg_lock_;
    };
分享:

    相关文档

    相关产品