logplus/Workflow/WFEngine/Module/include/ModuleParameter.h

208 lines
6.2 KiB
C
Raw Normal View History

2026-01-16 17:18:41 +08:00
/**
* @file ModuleParameter.h
* @brief
* @author dev
* @date 2011-4-29
*/
#ifndef PAI_FRAME_MODULEAPI_MODULEPARAMETER_H
#define PAI_FRAME_MODULEAPI_MODULEPARAMETER_H
#include "Turtle.h"
#include "ParameterItem.h"
#include <string>
#include <vector>
namespace Json {
class Value;
}
namespace pai {
namespace module {
/**
* @class CModuleParameter
* @brief <code>CModuleParameter</code>
*/
class PAI_MODULE_EXPORT CModuleParameter {
public:
/**
* @brief
*/
CModuleParameter();
/**
* @brief
*/
CModuleParameter(const CModuleParameter& srcParameter);
/**
* @brief
*/
virtual ~CModuleParameter();
/**
* @brief
* @param srcParameter
*/
void Clone(const CModuleParameter& srcParameter);
/**
* @brief ==,
* @param[in] otherItem
*/
bool operator==(const CModuleParameter& otherParameter) const;
/**
* @brief id
* @param[in] id id
*/
virtual void SetWorkflowId(std::string id) { workflow_id = id; }
/**
* @brief id
*/
virtual std::string GetWorkflowId() { return workflow_id; }
/**
* @brief
*/
void SetLocalTempDirectory(std::string tmp_dir) { local_tmp_dir = tmp_dir; }
/**
* @brief
* @return
*/
std::string GetLocalTempDirectory() const{ return local_tmp_dir; }
/**
* @brief HDFS临时目录
* @param[in] tmp_dir HDFS临时目录
*/
void SetHDFSTempDirectory(std::string tmp_dir) { hdfs_tmp_dir = tmp_dir; }
/**
* @brief HDFS临时目录
* @return HDFS临时目录
*/
std::string GetHDFSTempDirectory() const { return hdfs_tmp_dir; }
/**
* @brief
* @param[in] item
*/
void AddParameterItem(const CParameterItem& item);
/**
* @brief
* @param[in] paramId
* @param[in] paramType
* @param[in] paramStringValue
*/
void AddParameterItem(QString& paramId,const ParameterType paramType,const std::string& paramStringValue);
void AddParameterItem(const std::string& paramId,const ParameterType paramType,const std::string& paramStringValue);
/**
* @brief
* @param paramId是参数Id
*/
void RemoveParameterItem(const std::string& paramId);
/**
* @brief
* @return
*/
int GetParameterItemCount() const;
/**
* @brief
* @param[in] strItemName
* @return
*/
int GetParamItemIndex(const std::string& strItemName) const;
/**
* @brief
* @param[in] iIndex
* @return <code>CParameterItem</code>
*/
CParameterItem* GetParameterItem(int iIndex);
/**
* @brief
* @param[in] strItemName
* @return <code>CParameterItem</code>
*/
CParameterItem* GetParameterItem(const std::string& strItemName);
/**
* @brief
* @return
*/
std::vector<CParameterItem> GetParameterItems() const;
/**
* @brief
* @param[out] vecCategoryNames
*/
void GetCategoryNames(std::vector<std::string>& vecCategoryNames);
/**
* @brief
* @return <code>CCompositeParameterItem</code>
*/
CCompositeParameterItem* GetRootParameterItem() const;
/**
* @brief
* @param[in] strCategory
* @return
*/
std::vector<CParameterItem*> GetParameterItemsByCategory(const std::string& strCategory) const;
//REMOVEME
void SetClass(std::string clazz) { m_strClass = clazz; }
std::string GetClass() const { return m_strClass; }
/**
* @brief Json文件中读取参数信息
* @param bAmendID ID及其子孙参数的参数项ID
* @exception pai::error::runtime_error
*/
// void LoadFromJson(const Json::Value& root,bool bAmendID = false);
/**
* @brief Json文件中
* @param root Module
* @exception pai::error::runtime_error
*/
// void SaveToJson(Json::Value& root);
/**
* @brief
*/
// void Print();
/**
* @brief
* @param[out] completeIndex
* @return truefalse
*/
bool IsReady(ParameterCompleteIndex& completeIndex) const;
/**
* @brief
* @param[in] importPath
*/
void SetImportPath(std::string importPath);
private:
/**
* @brief Json节点中读取参数项信息
* @param paramJsonNode Json节点
* @param pParentItem Json节点对应的参数项的父参数项
* @param bAmendID ID及其子孙参数的参数项ID
*/
// void _LoadFromJson(const Json::Value& paramJsonNode, CCompositeParameterItem* pParentItem,bool bAmendID);
/**
* @brief Json节点中
* @param paramJsonNode Json节点
* @param pParentItem Json节点对应的参数项
*/
// void _SaveToJson(Json::Value& paramJsonNode, CParameterItem* pItem);
protected:
std::string workflow_id; /**< 工作流对应的标识符*/
std::string local_tmp_dir; /**< 工作流对应的本地临时读写目录*/
std::string hdfs_tmp_dir; /**< 工作流对应的HDFS临时读写目录*/
CCompositeParameterItem m_rootParameterItem; /**< 根参数项 */
//REMOVEME
std::string m_strClass;
private:
std::string m_importPath; //工作流导入时的项目工区路径
};
}
}
#endif