00001 #ifndef BOERN_SFLEX_HPP 00002 #define BOERN_SFLEX_HPP 00003 00004 // Copyright (C) 2002 Bernhard Assmann <b.assmann@uni-koeln.de> 00005 // 00006 // This program is free software; you can redistribute it and/or modify 00007 // it under the terms of the GNU General Public License as published by 00008 // the Free Software Foundation; either version 2 of the License, or 00009 // (at your option) any later version. 00010 // 00011 // This program is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 // GNU General Public License for more details. 00015 // 00016 // You should have received a copy of the GNU General Public License 00017 // along with this program; if not, write to the Free Software 00018 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00019 // 00020 00125 /* 00126 */ 00127 00128 #include <string> 00129 #include <map> 00130 #include <sstream> 00131 00132 class SflexModule; 00133 class SflexConfig; 00134 00141 class Sflex 00142 { 00143 public: 00144 00151 Sflex( std::string configFile ); 00152 00153 ~Sflex(); 00163 void 00164 init( std::string pathInfo, 00165 std::string scriptName, 00166 const std::map< std::string, std::string > &cgiValueList ); 00167 00172 void 00173 makeResult(); 00174 00182 const std::string 00183 getResult(); 00184 00193 const std::string 00194 getContentType() const; 00195 00204 bool 00205 isSuccess() const; 00206 00207 private: 00212 Sflex(); 00213 00221 const std::string 00222 getErrorHeader() const; 00223 00231 const std::string 00232 getErrorFooter() const; 00233 00238 SflexConfig *sflexConfig_; 00239 00244 SflexModule *sflexModule_; 00245 00250 std::ostringstream resultStream_; 00251 00256 mutable std::string configFile_; 00257 00263 std::string contentType_; 00264 00269 bool isSuccess_; 00270 00271 }; 00272 #endif