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 #ifndef _MPCL_NET_CGI_CONFIG_PROCESSOR__
00027 #define _MPCL_NET_CGI_CONFIG_PROCESSOR__
00028
00029 #include "../../text/html/form.hh"
00030 #include "../../text/string.hh"
00031 #include "../../util/prefs/config_processor.hh"
00032
00033
00035 namespace mpcl
00036 {
00037
00039 namespace net
00040 {
00041
00043 namespace cgi
00044 {
00045
00046 using text::TString;
00047 using util::prefs::TOption;
00048
00075 class TConfigProcessor : protected util::prefs::TConfigProcessor
00076 {
00077
00078 private:
00079
00081 using util::prefs::TConfigProcessor::TOptionVector;
00082
00087 bool gHasInput;
00088
00090 mutable TOptionVector tFormOptionVector;
00091
00092
00093 public:
00094
00095
00096
00097
00098
00105 TConfigProcessor (int iPARAMETER_COUNT, const char** ppkcPARAMETERS);
00106
00111 void processOptions (void);
00112
00114 using util::prefs::TConfigProcessor::setCommandLineParameters;
00115
00117 using util::prefs::TConfigProcessor::setConfigFileName;
00118
00120 using util::prefs::TConfigProcessor::setCurrentNameSpace;
00121
00123 using util::prefs::TConfigProcessor::addOption;
00124
00125
00126 protected:
00127
00128
00129
00130
00131
00133 void processCommandLine (void);
00134
00136 using util::prefs::TConfigProcessor::processConfigFile;
00137
00141 void readFormData (std::basic_istream<char_type, traits_type>& rtSOURCE_ISTREAM);
00142
00151 TOption& updateFormOption (const TString& rkyNAME, const TString& rkyVALUE);
00152
00153 TOption& updateOptionWithName ( const TString& rkyNAME ,
00154 const TString& rkyVALUE );
00155
00156 public:
00157
00158
00159
00160
00161
00163 using util::prefs::TConfigProcessor::environmentValue;
00164
00170 const TString& getFormValue (const char* pkcNAME) const;
00171
00177 const TString& getFormValue (const std::string& rkyNAME) const
00178 {
00179 return getFormValue (rkyNAME.c_str());
00180 }
00181
00185 bool hasFormOption (const TString& rkyNAME) const;
00186
00191 bool hasInput (void) const
00192 {
00193 return gHasInput;
00194 }
00195
00199 bool hasOption (const TString& rkyNAME) const;
00200
00202 using util::prefs::TConfigProcessor::operator [];
00203
00205 using util::prefs::TConfigProcessor::programFileName;
00206
00211 void updateForm (text::html::TForm& rtTARGET_FORM) const;
00212
00213 };
00214
00215 }
00216
00217 }
00218
00219 }
00220
00221
00222 #endif // not _MPCL_NET_CGI_CONFIG_PROCESSOR__