#ifndef __ABANDCLIP_CFG_H #define __ABANDCLIP_CFG_H #include "MAS_AlgoDef.h" #define NAMESPACE_ABANDCLIP_BEGIN namespace abandclip { #define NAMESPACE_ABANDCLIP_END }; NAMESPACE_MAS_BEGIN NAMESPACE_ABANDCLIP_BEGIN struct DataItem { TZ_FLOAT val; std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiled(document, "val", val); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string& json, DataItem& value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if (document.HasParseError()) { return FALSE; } value.val = tzc::json::getFiled(document, "val", 0.0f); return TRUE; } }; struct TextFeature { std::string text; std::vector features; std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiled(document, "text", text); tzc::json::setFiledArrayObject(document, "features", features); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string & json, TextFeature & value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if (document.HasParseError()) { return false; } value.text = tzc::json::getFiled(document, "text", ""); TZ_BOOL rst = TRUE; rst &= tzc::json::ConverArrayObject(document, "features", value.features); return true; } }; struct AbandClipCfg { TZ_DOUBLE FeatureThreshold; std::string FeatureFilePath; AbandClipCfg() : FeatureThreshold(10.0){} std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiled(document, "FeatureThreshold", FeatureThreshold); tzc::json::setFiled(document, "FeatureFilePath", FeatureFilePath); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string & json, AbandClipCfg & value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if (document.HasParseError()) { return false; } value.FeatureThreshold = tzc::json::getFiled(document, "FeatureThreshold", 10.0); value.FeatureFilePath = tzc::json::getFiled(document, "FeatureFilePath", ""); return true; } }; struct AbandClipStrategyExterns { std::string Description; AbandClipStrategyExterns() : Description("") {} std::string toJson() const { tzc::json::JsonDoc document; document.SetObject(); tzc::json::setFiled(document, "Description", Description); return tzc::json::ValueToJson(document); } static TZ_BOOL fromJson(const std::string & json, AbandClipStrategyExterns & value) { tzc::json::JsonDoc document; document.Parse(json.c_str()); if (document.HasParseError()) { return false; } value.Description = tzc::json::getFiled(document, "Description", ""); return true; } }; NAMESPACE_ABANDCLIP_END NAMESPACE_MAS_END #endif