|
libsax 7.2
|
00001 /************** 00002 FILE : storage.h 00003 *************** 00004 PROJECT : SaX2 - library interface [header] 00005 : 00006 AUTHOR : Marcus Schäfer <ms@suse.de> 00007 : 00008 BELONGS TO : SaX2 - SuSE advanced X11 configuration 00009 : 00010 : 00011 DESCRIPTION : native C++ class library to access SaX2 00012 : functionality. Easy to use interface for 00013 : //.../ 00014 : - importing/exporting X11 configurations 00015 : - modifying/creating X11 configurations 00016 : --- 00017 : 00018 : 00019 STATUS : Status: Development 00020 **************/ 00021 #ifndef SAX_STORAGE_H 00022 #define SAX_STORAGE_H 1 00023 00024 //==================================== 00025 // Includes... 00026 //------------------------------------ 00027 #include <Q3Dict> 00028 #include <Q3PtrList> 00029 #include <qstring.h> 00030 #include <QTextOStream> 00031 #include <qstringlist.h> 00032 #include <qregexp.h> 00033 00034 #include "exception.h" 00035 00036 namespace SaX { 00037 //==================================== 00038 // Defines... 00039 //------------------------------------ 00040 #define NULL_STRING "" 00041 #define SAX_DESKTOP_TYPE 1 00042 #define SAX_KEYBOARD_TYPE 2 00043 #define SAX_POINTER_TYPE 3 00044 00045 //==================================== 00046 // Interface class for dlopen ability 00047 //------------------------------------ 00055 class SaXStorageIF : public SaXException { 00056 public: 00057 virtual void setItem ( const QString &, const QString & ) = 0; 00058 virtual void addItem ( const QString &, const QString & ) = 0; 00059 virtual void removeItem ( const QString &, const QString & ) = 0; 00060 virtual void removeEntry ( const QString & ) = 0; 00061 virtual void setDenomination ( 00062 const QString &, const QString &,const QString & 00063 ) = 0; 00064 virtual void setRawItem ( 00065 const QString &, const QString &,const QString & 00066 ) = 0; 00067 virtual void addRawItem ( 00068 const QString &, const QString &,const QString & 00069 ) = 0; 00070 virtual void removeRawItem ( const QString &, const QString & ) = 0; 00071 virtual QString getItem ( const QString & ) = 0; 00072 00073 public: 00074 virtual bool setID ( int ) = 0; 00075 virtual bool addID ( int ) = 0; 00076 virtual bool delID ( int ) = 0; 00077 virtual int getCurrentID ( void ) = 0; 00078 virtual Q3Dict<QString> getTable ( int ) = 0; 00079 virtual Q3Dict<QString> getCurrentTable ( void ) = 0; 00080 virtual Q3Dict<QString>* getTablePointer ( int ) = 0; 00081 virtual Q3Dict<QString>* getCurrentTablePointer ( void ) = 0; 00082 virtual void merge ( Q3PtrList< Q3Dict<QString> > ) = 0; 00083 virtual int getCount ( bool = false ) = 0; 00084 00085 public: 00086 virtual void addGroup ( 00087 const QString &,const QString &, const QString & 00088 ) = 0; 00089 virtual Q3Dict< Q3Dict<QString> > getTablePointerCDB ( void ) = 0; 00090 virtual Q3PtrList< Q3Dict<QString> > getTablePointerCDB_DATA ( 00091 const QString & 00092 ) = 0; 00093 virtual Q3PtrList< Q3Dict<QString> > getTablePointerDATA ( void ) = 0; 00094 00095 public: 00096 virtual ~SaXStorageIF ( void ) { } 00097 }; 00098 //==================================== 00099 // Class SaXStorage... 00100 //------------------------------------ 00129 class SaXStorage : public SaXStorageIF { 00130 protected: 00131 Q3PtrList< Q3Dict<QString> > mData; 00132 Q3Dict< Q3Dict<QString> > mCDB; 00133 int mCurrentID; 00134 00135 public: 00136 void setItem ( const QString &, const QString & ); 00137 void addItem ( const QString &, const QString & ); 00138 void removeItem ( const QString &, const QString & ); 00139 void removeEntry ( const QString & ); 00140 void setDenomination ( 00141 const QString &, const QString &,const QString & 00142 ); 00143 void setRawItem ( 00144 const QString &, const QString &,const QString & 00145 ); 00146 void addRawItem ( 00147 const QString &, const QString &,const QString & 00148 ); 00149 void removeRawItem ( const QString &, const QString & ); 00150 QString getItem ( const QString & ); 00151 00152 public: 00153 bool setID ( int ); 00154 bool addID ( int ); 00155 bool delID ( int ); 00156 int getCurrentID ( void ); 00157 Q3Dict<QString> getTable ( int ); 00158 Q3Dict<QString> getCurrentTable ( void ); 00159 Q3Dict<QString>* getTablePointer ( int ); 00160 Q3Dict<QString>* getCurrentTablePointer ( void ); 00161 void merge ( Q3PtrList< Q3Dict<QString> > ); 00162 int getCount ( bool = false ); 00163 00164 public: 00165 void addGroup ( 00166 const QString &,const QString &, const QString & 00167 ); 00168 Q3Dict< Q3Dict<QString> > getTablePointerCDB ( void ); 00169 Q3PtrList< Q3Dict<QString> > getTablePointerCDB_DATA ( const QString & ); 00170 Q3PtrList< Q3Dict<QString> > getTablePointerDATA ( void ); 00171 00172 #ifndef NO_OPERATOR_SUPPORT 00173 public: 00174 Q3Dict<QString> operator[] ( int id ) { 00175 return getTable (id); 00176 } 00177 QString operator[] ( const QString & key ) { 00178 return getItem (key); 00179 } 00180 #endif 00181 00182 public: 00183 SaXStorage ( void ); 00184 }; 00185 } // end namespace 00186 #endif
1.7.3