00001 #ifndef cdbINIReader_H 00002 #define cdbINIReader_H 00003 00004 /******************************************************************* 00005 * E.S.O. - ACS project 00006 * 00007 * "@(#) $Id: cdbINIReader.h,v 1.25 2006/09/01 02:20:54 cparedes Exp $" 00008 * 00009 * who when what 00010 * -------- ---------- ---------------------------------------------- 00011 * msekoran 2001/05/09 created 00012 */ 00013 00014 #ifndef __cplusplus 00015 #error This is a C++ include file and cannot be used from plain C 00016 #endif 00017 00018 #include "acsutil.h" 00019 00020 #include "cdb.h" 00021 00022 #define INI_MAX_LINE_LENGTH 256 00023 #define INI_SEPARATOR_CHAR '=' 00024 #define INI_BEGIN_SECTION_CHAR '[' 00025 #define INI_END_SECTION_CHAR ']' 00026 00027 namespace cdb { 00028 00029 class cdb_EXPORT INIReader : public Table 00030 { 00031 00032 public: 00033 INIReader(const char * fileName); 00034 virtual ~INIReader(); 00035 static Table* createTable( int argc, char** argv, CORBA::ORB_ptr orb ); 00036 00037 virtual Boolean isInitialized(); 00038 00039 // WARNING: NextSection method is not thread-safe!!! 00040 Boolean NextSection(ACE_TCHAR * strRecordName, ACE_TCHAR * strFieldName, ACE_TCHAR * valueName); 00041 Boolean Rewind(); 00042 00043 // cdb::Table interface 00044 00045 Boolean CreateRecord(const String &strRecordName, 00046 Boolean bTruncate = FALSE); 00047 00048 ULong GetRecordState(const String &strRecordName); 00049 00050 Boolean GetField(const String &strRecordName, 00051 const String &strFieldName, 00052 Field &fld); 00053 00054 Boolean SetField(const String &strRecordName, 00055 const String &strFieldName, 00056 const Field &fld, 00057 Boolean bCreate = TRUE); 00058 00059 Boolean RemoveField(const String &strRecordName, 00060 const String &strFieldName); 00061 00062 Boolean GetRecord(const String &strRecordName, 00063 Record &rec, 00064 Boolean bCreate = FALSE, 00065 Boolean bAppend = FALSE); 00066 00067 Boolean SetRecord(const String &strRecordName, 00068 const Record &rec, 00069 Boolean bCreate = TRUE, 00070 Boolean bAll = TRUE); 00071 Boolean RemoveRecord(const String &strRecordName); 00072 00073 Boolean GetChildren(const String &strRecordName, 00074 StringArray &astrChildren); 00075 00076 private: 00077 00081 FILE * m_fileHandle; 00082 00086 Boolean m_initialized; 00087 00091 ACE_TCHAR m_section[INI_MAX_LINE_LENGTH]; 00092 00093 }; 00094 00095 }; 00096 00097 #endif /* cdbINIReader_H */ 00098 00099 // ************************************************************************ 00100 // 00101 // REVISION HISTORY: 00102 // 00103 // $Log: cdbINIReader.h,v $ 00104 // Revision 1.25 2006/09/01 02:20:54 cparedes 00105 // small change, NAMESPACE_BEGIN / NAMESPACE_END / NAMESPACE_USE macross to clean up a little the cpp code 00106 // 00107 // Revision 1.24 2003/01/28 16:43:50 vltsccm 00108 // gchiozzi: patch for cdb module to create lib/endorsed directory, since CVS cannot restore empty directories 00109 // 00110 // Revision 1.23 2003/01/24 10:44:05 vltsccm 00111 // cdb1.23 00112 // 00113 // Revision 1.22 2003/01/20 15:12:20 vltsccm 00114 // cdb1.22 00115 // 00116 // Revision 1.21 2003/01/20 10:45:53 vltsccm 00117 // cdb1.21 00118 // 00119 // Revision 1.20 2002/12/05 16:03:59 vltsccm 00120 // cdb1.20 00121 // 00122 // Revision 1.19 2002/11/25 16:04:50 vltsccm 00123 // cdb1.19 00124 // 00125 // Revision 1.18 2002/11/13 14:53:05 vltsccm 00126 // cdb1.18 00127 // 00128 // Revision 1.17 2002/11/13 10:22:31 vltsccm 00129 // cdb1.17 00130 // 00131 // Revision 1.16 2002/11/06 08:37:05 vltsccm 00132 // cdb1.16 00133 // 00134 // Revision 1.15.1.23 2002/11/05 16:05:14 vltsccm 00135 // cdb1.15.1.23 00136 // 00137 // Revision 1.15.1.22 2002/11/05 13:46:31 vltsccm 00138 // cdb1.15.1.22 00139 // 00140 // Revision 1.15.1.21 2002/11/05 10:41:14 vltsccm 00141 // cdb1.15.1.21 00142 // 00143 // Revision 1.15.1.20 2002/11/01 12:49:03 vltsccm 00144 // cdb1.15.1.20 00145 // 00146 // Revision 1.15.1.19 2002/10/30 07:56:44 vltsccm 00147 // cdb1.15.1.19 00148 // 00149 // Revision 1.15.1.18 2002/10/25 12:44:24 vltsccm 00150 // cdb1.15.1.18 00151 // 00152 // Revision 1.15.1.17 2002/10/24 13:08:44 vltsccm 00153 // cdb1.15.1.17 00154 // 00155 // Revision 1.15.1.16 2002/10/16 11:43:45 vltsccm 00156 // cdb1.15.1.16 00157 // 00158 // Revision 1.15.1.15 2002/10/14 22:26:11 vltsccm 00159 // cdb1.15.1.15 00160 // 00161 // Revision 1.15.1.14 2002/10/14 12:18:33 vltsccm 00162 // cdb1.15.1.14 00163 // 00164 // Revision 1.15.1.13 2002/10/04 16:20:24 vltsccm 00165 // cdb1.15.1.13 00166 // 00167 // Revision 1.15.1.12 2002/10/02 12:54:15 vltsccm 00168 // cdb1.15.1.12 00169 // 00170 // Revision 1.15.1.11 2002/10/01 10:33:25 vltsccm 00171 // cdb1.15.1.11 00172 // 00173 // Revision 1.15.1.10 2002/09/30 13:56:52 vltsccm 00174 // cdb1.15.1.10 00175 // 00176 // Revision 1.15.1.9 2002/09/26 14:13:11 vltsccm 00177 // cdb1.15.1.9 00178 // 00179 // Revision 1.15.1.8 2002/09/26 07:45:47 vltsccm 00180 // cdb1.15.1.8 00181 // 00182 // Revision 1.15.1.7 2002/09/17 16:19:23 vltsccm 00183 // cdb1.15.1.7 00184 // 00185 // Revision 1.15.1.6 2002/09/17 11:15:48 vltsccm 00186 // cdb1.15.1.6 00187 // 00188 // Revision 1.15.1.5 2002/09/02 09:37:07 vltsccm 00189 // cdb1.15.1.5 00190 // 00191 // Revision 1.15.1.4 2002/08/09 09:35:24 vltsccm 00192 // cdb1.15.1.4 00193 // 00194 // Revision 1.15.1.3 2002/07/24 07:29:11 vltsccm 00195 // cdb1.15.1.3 00196 // 00197 // Revision 1.15.1.2 2002/07/12 09:58:18 vltsccm 00198 // cdb1.15.1.2 00199 // 00200 // Revision 1.15+.1.1 2002/07/09 09:40:09 vltsccm 00201 // cdb1.15.1 00202 // 00203 // Revision 1.15 2002/02/05 17:50:08 vltsccm 00204 // cdb1.15 00205 // 00206 // Revision 1.14 2002/01/14 21:14:19 vltsccm 00207 // cdb1.14 00208 // 00209 // Revision 1.13 2001/10/19 09:56:23 vltsccm 00210 // cdb1.13 00211 // 00212 // Revision 1.12 2001/09/18 10:07:12 vltsccm 00213 // cdb1.12 00214 // 00215 // Revision 1.11 2001/07/12 07:48:28 vltsccm 00216 // cdb1.11 00217 // 00218 // Revision 1.10 2001/07/11 09:16:24 vltsccm 00219 // cdb1.10 00220 // 00221 // Revision 1.9 2001/07/11 09:16:23 vltsccm 00222 // cdb1.9 00223 // 00224 // Revision 1.8 2001/07/11 09:16:23 vltsccm 00225 // cdb1.8 00226 // 00227 // Revision 1.7 2001/07/11 09:16:23 vltsccm 00228 // cdb1.7 00229 // 00230 // Revision 1.6 2001/07/11 09:16:22 vltsccm 00231 // cdb1.6 00232 // 00233 // Revision 1.5 2001/07/11 09:16:22 vltsccm 00234 // cdb1.5 00235 // 00236 // Revision 1.4 2001/07/11 09:16:22 vltsccm 00237 // cdb1.4 00238 // 00239 // Revision 1.3 2001/07/11 09:16:21 vltsccm 00240 // cdb1.3 00241 // 00242 // Revision 1.2 2001/07/11 09:16:21 vltsccm 00243 // cdb1.2 00244 // 00245 // Revision 1.1 2001/07/11 09:16:21 vltsccm 00246 // cdb1.1 00247 // 00248 // Revision 1.0 2001/07/11 09:16:21 vltsccm 00249 // cdb1.0 00250 // 00251 // 00252 // ************************************************************************ 00253