00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
#ifndef _PCONFIG
00113
#define _PCONFIG
00114
00115
#ifdef P_USE_PRAGMA
00116
#pragma interface
00117
#endif
00118
00119
class PXConfig;
00120
00141 class PConfig :
public PObject
00142 {
00143
PCLASSINFO(
PConfig,
PObject);
00144
00145
public:
00150 enum Source {
00155
Environment,
00161
System,
00170
Application,
00171
NumSources
00172 };
00173
00179
PConfig(
00180 Source src = Application
00181 );
00183
PConfig(
00184 Source src,
00185
const PString & appname
00186 );
00188
PConfig(
00189 Source src,
00190
const PString & appname,
00191
const PString & manuf
00192 );
00194
PConfig(
00195
const PString & section,
00196 Source src = Application
00197 );
00199
PConfig(
00200
const PString & section,
00201 Source src,
00202
const PString & appname
00203 );
00205
PConfig(
00206
const PString & section,
00207 Source src,
00208
const PString & appname,
00209
const PString & manuf
00210 );
00212
PConfig(
00213
const PFilePath & filename,
00214
const PString & section
00215 );
00217
00227
virtual void SetDefaultSection(
00228
const PString & section
00229 );
00230
00240
virtual PString GetDefaultSection() const;
00241
00250 virtual
PStringList GetSections() const;
00251
00257 virtual
PStringList GetKeys() const;
00259 virtual
PStringList GetKeys(
00260 const
PString & section
00261 ) const;
00262
00268 virtual
PStringToString GetAllKeyValues() const;
00270 virtual
PStringToString GetAllKeyValues(
00271 const
PString & section
00272 ) const;
00273
00274
00281 virtual
void DeleteSection();
00283 virtual
void DeleteSection(
00284 const
PString & section
00285 );
00286
00295 virtual
void DeleteKey(
00296 const
PString & key
00297 );
00299 virtual
void DeleteKey(
00300 const
PString & section,
00301 const
PString & key
00302 );
00303
00312 virtual BOOL HasKey(
00313 const
PString & key
00314 ) const;
00316 virtual BOOL HasKey(
00317 const
PString & section,
00318 const
PString & key
00319 ) const;
00321
00334 virtual
PString GetString(
00335 const
PString & key
00336 ) const;
00338 virtual
PString GetString(
00339 const
PString & key,
00340 const
PString & dflt
00341 ) const;
00343 virtual
PString GetString(
00344 const
PString & section,
00345 const
PString & key,
00346 const
PString & dflt
00347 ) const;
00348
00352 virtual
void SetString(
00353 const
PString & key,
00354 const
PString & value
00355 );
00357 virtual
void SetString(
00358 const
PString & section,
00359 const
PString & key,
00360 const
PString & value
00361 );
00362
00363
00380 virtual BOOL GetBoolean(
00381 const
PString & key,
00382 BOOL dflt = FALSE
00383 ) const;
00385 virtual BOOL GetBoolean(
00386 const
PString & section,
00387 const
PString & key,
00388 BOOL dflt = FALSE
00389 ) const;
00390
00397 virtual
void SetBoolean(
00398 const
PString & key,
00399 BOOL value
00400 );
00402 virtual
void SetBoolean(
00403 const
PString & section,
00404 const
PString & key,
00405 BOOL value
00406 );
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418 virtual
long GetInteger(
00419 const
PString & key,
00420
long dflt = 0
00421 ) const;
00422
00423 virtual
long GetInteger(
00424 const
PString & section,
00425 const
PString & key,
00426
long dflt = 0
00427 ) const;
00428
00435 virtual
void SetInteger(
00436 const
PString & key,
00437
long value
00438 );
00440 virtual
void SetInteger(
00441 const
PString & section,
00442 const
PString & key,
00443
long value
00444 );
00445
00446
00456 virtual PInt64 GetInt64(
00457 const
PString & key,
00458 PInt64 dflt = 0
00459 ) const;
00461 virtual PInt64 GetInt64(
00462 const
PString & section,
00463 const
PString & key,
00464 PInt64 dflt = 0
00465 ) const;
00466
00473 virtual
void SetInt64(
00474 const
PString & key,
00475 PInt64 value
00476 );
00478 virtual
void SetInt64(
00479 const
PString & section,
00480 const
PString & key,
00481 PInt64 value
00482 );
00483
00484
00494 virtual
double GetReal(
00495 const
PString & key,
00496
double dflt = 0
00497 ) const;
00499 virtual
double GetReal(
00500 const
PString & section,
00501 const
PString & key,
00502
double dflt = 0
00503 ) const;
00504
00512 virtual
void SetReal(
00513 const
PString & key,
00514
double value
00515 );
00517 virtual
void SetReal(
00518 const
PString & section,
00519 const
PString & key,
00520
double value
00521 );
00522
00532 virtual
PTime GetTime(
00533 const
PString & key
00534 ) const;
00536 virtual
PTime GetTime(
00537 const
PString & key,
00538 const
PTime & dflt
00539 ) const;
00541 virtual
PTime GetTime(
00542 const
PString & section,
00543 const
PString & key
00544 ) const;
00546 virtual
PTime GetTime(
00547 const
PString & section,
00548 const
PString & key,
00549 const
PTime & dflt
00550 ) const;
00551
00555 virtual
void SetTime(
00556 const
PString & key,
00557 const
PTime & value
00558 );
00560 virtual
void SetTime(
00561 const
PString & section,
00562 const
PString & key,
00563 const
PTime & value
00564 );
00566
00567
00568 protected:
00569
00571 PString defaultSection;
00572
00573
00574 private:
00575
00576
void Construct(
00577 Source src,
00578 const
PString & appname,
00579 const
PString & manuf
00580 );
00581
void Construct(
00582 const
PFilePath & filename
00583 );
00584
00585
00586
00587 #ifdef _WIN32
00588 #include "msos/ptlib/config.h"
00589 #else
00590 #include "unix/ptlib/config.h"
00591 #endif
00592 };
00593
00594 #endif
00595
00596