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