SpMisc.h 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #pragma once
  2. #define SHELL_EPID 0
  3. // error
  4. #define SpTranslateError(internal_sp_error) (ErrorCodeEnum)(internal_sp_error)
  5. //ErrorCodeEnum SpTranslateError(int internal_sp_error) { return internal_sp_error; }
  6. // ini file
  7. ErrorCodeEnum SpIniFileReadString(const char *pszFile, const char *pszSection, const char *pszKey, CSimpleStringA &strValue);
  8. ErrorCodeEnum SpIniFileWriteString(const char *pszFile, const char *pszSection, const char *pszKey, const char *pszValue);
  9. ErrorCodeEnum SpIniFileReadAllKeys(const char *pszFile, const char *pszSection, CAutoArray<CSimpleStringA> &Keys);
  10. ErrorCodeEnum SpIniFileReadAllSections(const char *pszFile, CAutoArray<CSimpleStringA> &Sections);
  11. class SpEntity;
  12. class SpIniConfig : public IConfigInfo
  13. {
  14. public:
  15. SpIniConfig(SpEntity *pEntity, ConfigTypeEnum type) : m_type(type), m_pEntity(pEntity) {}
  16. virtual bool storageInMem() { return false; }
  17. virtual ConfigTypeEnum GetConfigType() { return m_type; }
  18. /** read/write config via shell */
  19. virtual ErrorCodeEnum ReadConfigValue(const char *pszSection, const char *pszKey,CSimpleStringA &strValue);
  20. virtual ErrorCodeEnum ReadConfigValueInt(const char *pszSection, const char *pszKey, int &iValue);
  21. /** only can write self's section, pValue=NULL for delete */
  22. virtual ErrorCodeEnum WriteConfigValue(const char *pszSection, const char *pszKey, const char *pszValue);
  23. virtual ErrorCodeEnum WriteConfigValueInt(const char *pszSection, const char *pszKey, int iValue);
  24. /** read all key-value pairs */
  25. virtual ErrorCodeEnum ReadAllKeys(const char *pszSection, CAutoArray<CSimpleStringA> &strKeys);
  26. /** get all section values */
  27. virtual ErrorCodeEnum ReadAllSections(CAutoArray<CSimpleStringA> &strSections);
  28. /** write hex int values, ig: "keyName=0x4F3D012A" */
  29. virtual ErrorCodeEnum WriteConfigValueHexInt(const char *pszSection, const char *pszKey, UINT64 nValue);
  30. virtual ErrorCodeEnum ReadConfigValueHexInt(const char *pszSection, const char *pszKey, UINT64 &nValue);
  31. ErrorCodeEnum EstimateBeforeRW();
  32. private:
  33. ErrorCodeEnum _GetMappFilePath(CSimpleStringA& strPath);
  34. ConfigTypeEnum m_type;
  35. SpEntity *m_pEntity;
  36. };
  37. class SpRootMemConfig : public IConfigInfo
  38. {
  39. public:
  40. SpRootMemConfig(SpEntity* pEntity, ConfigTypeEnum type);
  41. ~SpRootMemConfig();
  42. virtual bool storageInMem() { return true; }
  43. virtual ConfigTypeEnum GetConfigType() { return m_type; }
  44. /** read/write config via shell */
  45. virtual ErrorCodeEnum ReadConfigValue(const char* pszSection, const char* pszKey, CSimpleStringA& strValue);
  46. virtual ErrorCodeEnum ReadConfigValueInt(const char* pszSection, const char* pszKey, int& iValue);
  47. /** only can write self's section, pValue=NULL for delete */
  48. virtual ErrorCodeEnum WriteConfigValue(const char* pszSection, const char* pszKey, const char* pszValue);
  49. virtual ErrorCodeEnum WriteConfigValueInt(const char* pszSection, const char* pszKey, int iValue);
  50. /** read all key-value pairs */
  51. virtual ErrorCodeEnum ReadAllKeys(const char* pszSection, CAutoArray<CSimpleStringA>& strKeys);
  52. /** get all section values */
  53. virtual ErrorCodeEnum ReadAllSections(CAutoArray<CSimpleStringA>& strSections);
  54. /** write hex int values, ig: "keyName=0x4F3D012A" */
  55. virtual ErrorCodeEnum WriteConfigValueHexInt(const char* pszSection, const char* pszKey, UINT64 nValue);
  56. virtual ErrorCodeEnum ReadConfigValueHexInt(const char* pszSection, const char* pszKey, UINT64& nValue);
  57. private:
  58. SpEntity* m_pEntity;
  59. ConfigTypeEnum m_type;
  60. //避免暴露实现,并删除特殊构造
  61. class Impl;
  62. Impl *m_impl;
  63. SpRootMemConfig(SpRootMemConfig&& rhs);
  64. SpRootMemConfig& operator=(SpRootMemConfig&& rhs);
  65. SpRootMemConfig(const SpRootMemConfig& rhs);
  66. SpRootMemConfig& operator=(const SpRootMemConfig& rhs);
  67. };
  68. void SpInitUUID(WORD wId);