1 #ifndef _NNDEPLOY_BASE_PARAM_H_
2 #define _NNDEPLOY_BASE_PARAM_H_
16 #define PARAM_COPY(param_type) \
18 virtual std::shared_ptr<nndeploy::base::Param> copy() { \
19 std::shared_ptr<nndeploy::base::Param> param(new param_type()); \
20 param_type *param_ptr = dynamic_cast<param_type *>(param.get()); \
25 #define PARAM_COPY_TO(param_type) \
27 virtual nndeploy::base::Status copyTo(nndeploy::base::Param *param) { \
28 param_type *param_ptr = dynamic_cast<param_type *>(param); \
29 if (nullptr == param_ptr) { \
30 NNDEPLOY_LOGE("dynamic cast to %s failed\n", #param_type); \
31 return nndeploy::base::kStatusCodeErrorInvalidParam; \
34 return nndeploy::base::kStatusCodeOk; \
45 virtual base::
Status set(const std::
string &key, base::Any &any);
47 virtual base::
Status get(const std::
string &key, base::Any &any);
50 const std::vector<std::
string> &required_params);
51 base::
Status addRequiredParam(const std::
string &required_param);
52 base::
Status removeRequiredParam(const std::
string &required_param);
54 std::vector<std::
string> getRequiredParams();
56 base::
Status setUiParams(const std::vector<std::
string> &ui_params);
57 base::
Status addUiParam(const std::
string &ui_param);
58 base::
Status removeUiParam(const std::
string &ui_param);
60 std::vector<std::
string> getUiParams();
62 base::
Status setIoParams(const std::vector<std::
string> &io_params);
63 base::
Status addIoParam(const std::
string &io_param);
64 base::
Status removeIoParam(const std::
string &io_param);
66 std::vector<std::
string> getIoParams();
69 const std::map<std::
string, std::vector<std::
string>> &dropdown_params);
71 const std::
string &dropdown_param,
72 const std::vector<std::
string> &dropdown_values);
73 base::
Status removeDropdownParam(const std::
string &dropdown_param);
75 std::map<std::
string, std::vector<std::
string>> getDropdownParams();
81 rapidjson::Document::AllocatorType &allocator);
91 std::vector<std::
string> required_params_;
92 std::vector<std::
string> ui_params_;
93 std::vector<std::
string> io_params_;
94 std::map<std::
string, std::vector<std::
string>> dropdown_params_;
98 const std::
string &json_str);
#define NNDEPLOY_CC_API
api
std::string removeJsonBrackets(const std::string &json_str)
std::string prettyJsonStr(const std::string &json_str)
Graph * loadFile(const std::string &path)
base::Status serialize(Graph *graph, rapidjson::Value &json, rapidjson::Document::AllocatorType &allocator)
Graph * deserialize(rapidjson::Value &json)
base::Status saveFile(Graph *graph, const std::string &path)
#define PARAM_COPY_TO(param_type)
#define PARAM_COPY(param_type)