更新时间:2021-03-18 GMT+08:00
AINNNodeFactory
支持业务引擎自注册,提供创建NN Node接口,提供已注册NN Node描述信息查询(按名称查询以及查询全部)。AINNNodeFactory类在ai_nn_node.h中定义。
class AINNNodeFactory { public: static AINNNodeFactory* GetInstance(); /* * @brief 根据nnnode name创建NNNode * @param [in] name nnnode名称 * @return std::shared_ptr<IAINNNode> name对应的NNNode对象指针,如果返回nullptr,表示找不到对应的nnnode */ std::shared_ptr<IAINNNode> CreateNNNode(const std::string &name); /* * @brief 获取所有已注册nnnode的描述信息 * @param [out] nnnode_desc 所有已注册的nnnode描述信息 * @return SUCCESS 成功 * @return 其他 失败 */ void GetAllNNNodeDescription(AINNNodeDescriptionList &nnnode_desc); /* * @brief 根据nnnode name获取nnnode的描述信息 * @param [in] name nnnode名称 * @param [out] engin_desc nnnode描述信息 * @return SUCCESS 成功 * @return 其他 失败 */ AIStatus GetNNNodeDescription(const std::string &name, AINNNodeDescription &engin_desc); /* * @brief 注册NNNode创建函数 * @param [in] nnnode_desc nnnode描述信息 * @param [in] create_func nnnode创建函数 * @return SUCCESS 成功 * @return 其他 失败 */ AIStatus RegisterNNNodeCreator(const AINNNodeDescription &nnnode_desc, AINNNODE_CREATE_FUN create_func); AIStatus RegisterNNNodeCreator(const string nnnode_str, AINNNODE_CREATE_FUN create_func); /* * @brief 注销NNNode * @param [in] name nnnode名称 * @return SUCCESS 成功 */ AIStatus UnRegisterNNNode(const AINNNodeDescription &nnnode_desc); AIStatus UnRegisterNNNode(const string nnnode_str); private: std::map<std::string, AINNNODE_CREATE_FUN> create_func_map_; std::map<std::string, AINNNodeDescription> nnnode_desc_map_; std::mutex map_lock_; };
父主题: 其他用于编译依赖的接口