00001 #ifndef SFLEX_CONFIG_HPP
00002 #define SFLEX_CONFIG_HPP
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <string>
00022 #include <map>
00023 #include <vector>
00024 #include <sstream>
00025
00036 class SflexConfig
00037 {
00038 public:
00039
00040 ~SflexConfig();
00041
00047 static SflexConfig *
00048 getConfig();
00049
00059 bool
00060 isSuccess() const;
00061
00067 const std::string
00068 getError() const;
00069
00077 const std::string
00078 getValue( std::string pool,
00079 std::string key ) const;
00080
00086 const std::map< std::string, std::string > &
00087 getCgiValues() const;
00088
00097 const std::vector< std::string > &
00098 getModuleParameterList() const;
00099
00107 void
00108 addValue( std::string pool,
00109 std::string key,
00110 std::string value );
00111
00118 void
00119 addPathInfo( std::string pathInfo );
00120
00121
00127 void
00128 addCgiValues( const std::map< std::string, std::string > &cgiValueList );
00129
00130
00137 void
00138 parseConfig( std::string configFile );
00139
00140 private:
00141
00146 SflexConfig();
00147
00155 void
00156 parsePath( std::string pathInfo );
00157
00165 bool
00166 checkChar( char c );
00167
00172 static SflexConfig * config_;
00173
00178 bool isSuccess_;
00179
00184 std::ostringstream errorStream_;
00185
00190 std::map< std::string, std::vector< std::string > > configDataList_;
00191
00196 std::map< std::string, std::string > cgiValueList_;
00197
00202 std::vector< std::string > moduleParameterList_;
00203 };
00204
00205 #endif