Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.0 KiB

  1. /*
  2. *
  3. * NOTES:
  4. *
  5. * REVISIONS:
  6. * pcy11Dec92: Added extern _theConfigManager so others can use me.
  7. * hw12Dec92: Added structure _ConfigItemList_T.
  8. * rct19Jan93: Overloaded some methods...took out itemCodeList
  9. * rct26Jan93: Added remove methods
  10. * tje15Mar93: Made ConfigManager an abstract base class to support multiple types of cfgmgr's
  11. * pcy09Sep93: cfgmgr should be an obj to allow object status returns
  12. * cad04Mar94: added remove and rename for components
  13. * pav02Jul96: Added Item to handle lists (i.e. - SmartScheduling)
  14. * mholly06Oct98 : Discontinue use of a cache
  15. */
  16. #ifndef _INC__CFGMGR_H
  17. #define _INC__CFGMGR_H
  18. #include "_defs.h"
  19. #include "list.h"
  20. #include "cfgcodes.h"
  21. #include "icodes.h"
  22. //
  23. // Defines
  24. //
  25. _CLASSDEF(ConfigManager)
  26. _CLASSDEF(IniConfigManager)
  27. //
  28. // Uses
  29. //
  30. _CLASSDEF(TAttribute)
  31. _CLASSDEF(List)
  32. extern PConfigManager _theConfigManager;
  33. //
  34. // _ConfigItemList_T is struct used as the entries in
  35. // the ConfigItemList defined in stdcfg.cxx
  36. // ConfigItemList contains the default values for
  37. // items that can come from the ConfigManager
  38. //
  39. #define LAST_ENTRY -1
  40. struct _ConfigItemList_T {
  41. INT code;
  42. PCHAR componentName;
  43. PCHAR itemName;
  44. PCHAR defaultValue;
  45. };
  46. class ConfigManager : public Obj {
  47. public:
  48. ConfigManager();
  49. virtual INT Get( INT, PCHAR ) = 0;
  50. //++srb
  51. //virtual INT Set( INT, PCHAR ) = 0;
  52. virtual INT GetListValue( PCHAR, PCHAR, PCHAR ) = 0;
  53. protected:
  54. virtual _ConfigItemList_T * getItemCode( INT aCode ) = 0;
  55. virtual _ConfigItemList_T * getItemCode( PCHAR aComponent, PCHAR anItem ) = 0;
  56. };
  57. class IniConfigManager : public ConfigManager {
  58. public:
  59. IniConfigManager();
  60. virtual ~IniConfigManager();
  61. INT Get( INT, PCHAR );
  62. //++srb
  63. //INT Set( INT, PCHAR );
  64. INT GetListValue( PCHAR, PCHAR, PCHAR );
  65. private:
  66. _ConfigItemList_T * getItemCode( INT aCode );
  67. _ConfigItemList_T * getItemCode( PCHAR aComponent, PCHAR anItem );
  68. };
  69. #endif