fdhwlib  2.0.25
/home/kopmann/git-mirror/fdhwlib/fdhwlib/akutil/inifile.h
Go to the documentation of this file.
00001 /***************************************************************************
00002     inifile.h  -  description
00003 
00004     begin                : Fri Jul 28 2000
00005     copyright            : (C) 2000 by Andreas Kopmann
00006     email                : kopmann@hpe.fzk.de
00007  ***************************************************************************/
00008 
00009 /*
00010  * File:    inifile.hh
00011  *
00012  * Author:  Th. Wiegert
00013  *
00014  * Purpose: Header file for inifile.cc (derived from inifile.hxx, Rev. 2.1)
00015  *
00016  */
00017 
00018 
00019 #ifndef _INIFILE_HXX_
00020 #define _INIFILE_HXX_
00021 
00022 #include <cstdio>
00023 
00024 /*
00025 #ifndef kSUCCESS
00026 # define kSUCCESS              0
00027 #endif
00028 
00029 #ifndef kFAIL
00030 # define kFAIL                -1
00031 #endif
00032 */
00033 
00034 #define INIFILE_LINE_BUFFER_SIZE 1024
00035 
00036 
00037 
00050 //##ModelId=39912206001B
00051 class Inifile {
00052     
00053  public :
00054 
00056     enum result {
00057        kFAIL,
00058        kSUCCESS
00059     };
00060 
00061  
00062         //##ModelId=399122060061
00063     Inifile    (char* _filename);
00064         //##ModelId=39912206005A
00065     ~Inifile   ();
00066 
00067         //##ModelId=399122060059
00068 //    inline int    Status()
00069       inline result Status()
00070      { return fStatus; }
00071         //##ModelId=399122060058
00072     inline char*  GetFilename    ()
00073      { return fFilename; }
00074         //##ModelId=399122060053
00075     char*         GetFirstString (char* _entry);
00076         //##ModelId=399122060050
00077     int           GetFirstValue  (char* _entry, result * error = NULL);
00078         //##ModelId=39912206004F
00079     char*         GetNextString  ();
00080         //##ModelId=39912206004D
00081     int           GetNextValue   (result * error = NULL);
00082         //##ModelId=39912206004A
00083     void          Reset          ();
00084         //##ModelId=399122060048
00085     result        SpecifyGroup   (char *string);
00086 
00087 
00088  protected :
00089         //##ModelId=399122060039
00090     FILE* fInifile;
00091         //##ModelId=399122060033
00092     char  fLinebuf[INIFILE_LINE_BUFFER_SIZE];
00093         //##ModelId=399122060032
00094     char* fFilename;
00095         //##ModelId=399122060031
00096     char* fGroup;
00097         //##ModelId=399122060030
00098     char* fLineptr;
00099         //##ModelId=39912206002F
00100     char* fPtr;
00101         //##ModelId=399122060026
00102     int   fGrPos;
00104         //##ModelId=399122060025
00105     //int   fStatus;
00106     result fStatus;
00107 
00108         //##ModelId=399122060046
00109     char  _Digit2Value (char digit);
00110         //##ModelId=39912206003E
00111     char  _Digits2Value (char** src, char* end, int base);
00112         //##ModelId=39912206003B
00113     char  _GetNextCharacter (char** src, char* end);
00114         //##ModelId=39912206003A
00115     char* _GetLine ();
00116 
00117 };
00118 
00119 #endif // _INIFILE_HXX_