/*************************************************************************** Config Class Header ( Config.h ) ----------------------------------------- begin : 2013/05/28 copyright : (C) 2013 Solbox Inc. author : Development 1 Team - 2013/05/28 - 1st dadamin email : dev1@solbox.com version : 3.2.0 CopyRight(C) 2005 Solbox Inc. All Rights reserved. Redistribution and use in source and binary forms, with or with out modification, are not permitted in outside of Solbox Inc. ***************************************************************************/ #ifndef __CC_STATD_CONFIG_H__ #define __CC_STATD_CONFIG_H__ void StringSplit(string str, string delim, vector &results, bool bUseEmpty /*= false*/); class CDataBaseInfo { public: CDataBaseInfo() {} ~CDataBaseInfo() {} public: int m_poolcnt; string m_connstr; }; class CCommonConfig { public: CCommonConfig( string szFilename, string szProgramName ); virtual ~CCommonConfig(); bool LoadConf(); bool CheckValue(); void PrintValue(); inline const char * GetErrMessage() { return m_szErrMessage.c_str(); } inline const char * GetAppLogRoot() { return m_szAppLogRoot.c_str(); } inline int GetAppLogLevel() { return m_nLogLevel; } protected: string m_szConfigFile; string m_szProgramName; string m_szErrMessage; // log string m_szAppLogRoot; int m_nLogLevel; private: }; class CMyConfig : public CCommonConfig { public: static bool Init( string szProgramName, string szFilename ); static void Exit(); static CMyConfig* GetInstance(); private: static CMyConfig* m_pInstance; public: bool LoadConf(); bool CheckValue(); inline int GetTCPListenPort() { return m_TcpListenPort; } inline int GetWorkProcessCnt() { return m_WorkProcessCnt; } inline int GetWorkThreadCnt() { return m_WorkThreadCnt; } inline int GetUsedDBTypeCnt() { return m_usedDBTypeVec.size(); } inline const char * GetUsedDBType(int index) { return m_usedDBTypeVec[index].c_str(); } bool FindUsedDBType(string & k); inline int GetDBInfoCnt() { return m_DBInfoMap.size(); } inline void GetDBInfo( string key, map & info) { info = m_DBInfoMap.find(key)->second; } void SetFailLogPath(string & path); inline const char * GetFailLogPath() { return m_FailLogPath.c_str(); } void PrintValue(); protected: CMyConfig( string szFilename, string szProgramName ); virtual ~CMyConfig(); protected: int m_TcpListenPort; int m_WorkProcessCnt; int m_WorkThreadCnt; vector m_usedDBTypeVec; map > m_DBInfoMap; string m_FailLogPath; private: }; #endif // __CC_STATD_CONFIG_H__