#ifndef ___CDY_CFG_LOCAL_H__ #define ___CDY_CFG_LOCAL_H__ #ifdef _WINDOWS64 #ifdef DY_READ_CONFIG_LOCAL_EXPORTS #define DY_READ_CONFIG_LOCAL_API __declspec(dllexport) #else #define DY_READ_CONFIG_LOCAL_API __declspec(dllimport) #endif #else #define DY_READ_CONFIG_LOCAL_API #endif #include #include #include using namespace std; class DY_READ_CONFIG_LOCAL_API CDyCfgLocal { public: CDyCfgLocal(); ~CDyCfgLocal(); //从dy_config.sys读取 /************************************************************ Description:根据dy_name获取dy应用注册应用名 Input: dy_name Output:app_name ************************************************************/ int GetDyAppNameByDyName (const string dy_name , string& app_name); /************************************************************ Description:根据dy_name获取dy应用注册应用号 Input: dy_name Output:app_no ************************************************************/ int GetDyAppNoByDyName (const string dy_name , int& app_no); /************************************************************ Description:根据dy_name、proc_name,分配当前进程端口号 is_control只对dy_commit,dy_query_sample_server有效 Input: dy_name,proc_name,is_control Output:app_no ************************************************************/ int GetAppPortPosByDyName (const string dy_name , const string proc_name , int& proc_port, bool is_control = true); /************************************************************ Description:根据dy_name获取dy应用所服务的应用名,如dy_iscada为iscada应用服务 Input: dy_name Output:app_name ************************************************************/ int GetServedAppNameByDyName (const string dy_name , string& app_name); /************************************************************ Description:根据dy_name获取dy应用所服务的应用号 Input: dy_name Output:app_no ************************************************************/ int GetServedAppNoByDyName (const string dy_name, int& app_no); /************************************************************ Description:获取所有dy_name Input: Output:vec_dy_names ************************************************************/ int GetAllDyNameFromCfg (vector& vec_dy_names); /************************************************************ Description:获取dy_name下的所有dys_name Input:dy_name Output:vec_dys_names ************************************************************/ int GetAllDysNameByDyNameFromCfg (const string dy_name, vector& vec_dys_names); /************************************************************ Description:获取所有使用DY应用的应用号 Input: Output:vec_app_no ************************************************************/ int GetAllDyAppNo (vector& vec_app_no); /************************************************************ Description:检查app_no应用是否使用DY Input:app_no Output:-1:读取dy_config.sys配置文件出错;0:未使用DY;1:使用DY ************************************************************/ int CheckDyAppNo (const int app_no); /************************************************************ Description:根据应用号获取dy_name,对应dy_config.sys中dy_app Input:app_no Output:dy_name ************************************************************/ int GetDyNameByAppNo (const int app_no, string &dy_name); /************************************************************ Description:根据app_no、proc_name,分配当前进程端口号 is_control只对dy_commit,dy_query_sample_server有效 Input:app_no,proc_name,is_control Output:proc_port ************************************************************/ int GetAppPortPosByAppNo (const int app_no , const string proc_name , int& proc_port, bool is_control = true); /************************************************************ Description:根据dy应用所服务的应用号获取dy应用应用号 Input:app_no Output:register_app ************************************************************/ int GetDyAppByServedApp (const int app_no, int ®ister_app); private: int getIndexByServiceName (string service_name) ; int getIndexByDyName (const string dy_name) ; string gDyIntToStr (int nVal); int ReadDyConfigInfoLocal(); int StringCopy (char *des, const char *src, int max_len); vector m_vec_dy_names; map > m_dy_dys_vec_map; vector m_vec_app_name; vector m_vec_port_pos; map m_dyname_app_map; map m_app_dyname_map; //app_name->app_no from mng_app_num_name.ini map m_mng_app_name_map; map m_app_dyapp_map; map m_procname_port_map; bool m_read_cfg;//配置文件读取成功标识 // void gUsleep(const int usec); }; #endif