00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00023 #ifndef __vtkKWRegistryHelper_h
00024 #define __vtkKWRegistryHelper_h
00025
00026 #include "vtkObject.h"
00027 #include "vtkKWWidgets.h"
00028
00029 class KWWidgets_EXPORT vtkKWRegistryHelper : public vtkObject
00030 {
00031
00032 public:
00034
00035 static vtkKWRegistryHelper* New();
00036 vtkTypeRevisionMacro(vtkKWRegistryHelper, vtkObject);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00039
00041
00042 int ReadValue(const char *subkey,
00043 const char *key, char *value);
00045
00047 int DeleteKey(const char *subkey, const char *key);
00048
00050 int DeleteValue(const char *subkey, const char *key);
00051
00053
00054 int SetValue(const char *subkey, const char *key,
00055 const char *value);
00057
00059
00060 int Open(const char *toplevel, const char *subkey,
00061 int readonly);
00063
00065 int Close();
00066
00068
00071 vtkSetClampMacro(GlobalScope, int, 0, 1);
00072 vtkBooleanMacro(GlobalScope, int);
00073 vtkGetMacro(GlobalScope, int);
00075
00077
00078 vtkSetStringMacro(TopLevel);
00079 vtkGetStringMacro(TopLevel);
00081
00083
00084 vtkGetMacro(Opened, int);
00086
00088
00089 vtkGetMacro(Locked, int);
00091
00092
00093 enum {
00094 ReadOnly,
00095 ReadWrite
00096 };
00097
00098 enum
00099 {
00100 RegistryKeyValueSizeMax = 8192,
00101 RegistryKeyNameSizeMax = 100
00102 };
00103
00104
00105
00106
00107 protected:
00108 vtkKWRegistryHelper();
00109 virtual ~vtkKWRegistryHelper();
00110
00112
00113 vtkSetClampMacro(Locked, int, 0, 1);
00114 vtkBooleanMacro(Locked, int);
00116
00117
00119 virtual int ReadValueInternal(const char *key, char *value) = 0;
00120
00122 virtual int DeleteKeyInternal(const char *key) = 0;
00123
00125 virtual int DeleteValueInternal(const char *key) = 0;
00126
00128
00129 virtual int SetValueInternal(const char *key,
00130 const char *value) = 0;
00132
00134
00135 virtual int OpenInternal(const char *toplevel, const char *subkey,
00136 int readonly) = 0;
00138
00140 virtual int CloseInternal() = 0;
00141
00143 int IsSpace(char c);
00144
00146 char *Strip(char *str);
00147
00148 int Opened;
00149 int Changed;
00150 int Empty;
00151
00152
00153
00154 private:
00155 char *TopLevel;
00156 int Locked;
00157 int GlobalScope;
00158
00159 vtkKWRegistryHelper(const vtkKWRegistryHelper&);
00160 void operator=(const vtkKWRegistryHelper&);
00161 };
00162
00163 #endif
00164
00165
00166