#include <Sflex.hpp>
Zusammengehörigkeiten von Sflex:
Öffentliche Datenelemente | |
Sflex (std::string configFile) | |
Wird ein leerer String übergeben, wird der Pfad auf '/etc/sflex.conf' gesetzt. Mehr... | |
~Sflex () | |
void | init (std::string pathInfo, std::string scriptName, const std::map< std::string, std::string > &cgiValueList) |
Sammelt die Daten, die noch benötigt werden. Mehr... | |
void | makeResult () |
Erstellt das Ergebnis. Mehr... | |
const std::string | getResult () |
Liefert das Ergebnis der Anfrage. Mehr... | |
const std::string | getContentType () const |
Liefert den Content-Type. Mehr... | |
bool | isSuccess () const |
Genereller Status des Systems. Mehr... | |
Private Datenelemente | |
Sflex () | |
Ein deklarierter Konstruktor, der nicht definiert wird. Mehr... | |
const std::string | getErrorHeader () const |
Liefert im Fehlerfalle den Kopf des HTML-Dokuments. Mehr... | |
const std::string | getErrorFooter () const |
Liefert im Fehlerfalle das Ende des HTML-Dokuments. Mehr... | |
Private Attribute | |
SflexConfig * | sflexConfig_ |
Der Zeiger auf das Konfigurations-Objekt. Mehr... | |
SflexModule * | sflexModule_ |
Der Zeiger auf das Modul-Objekt. Mehr... | |
std::ostringstream | resultStream_ |
Der Ergebnis Stream. Mehr... | |
std::string | configFile_ |
Der Name der Konfigurationsdatei (mit Pfad). Mehr... | |
std::string | contentType_ |
Der Content-Type. Mehr... | |
bool | isSuccess_ |
Der Status des Objektes. Mehr... |
Diese Klasse ist der Vermittler zwischen dem System und dem Hauptprogramm. Sie sammelt auch die noch benötigten Daten (CGI-Werte, Pfad zur Konfigurationsdatei etc.) ein.
|
Wird ein leerer String übergeben, wird der Pfad auf '/etc/sflex.conf' gesetzt.
00026 : sflexConfig_ ( 0 ), 00027 sflexModule_ ( 0 ), 00028 configFile_ ( configFile ), 00029 contentType_ ( "text/html" ), 00030 isSuccess_ ( false ) 00031 { 00032 00033 } |
|
00038 { 00039 delete sflexModule_; 00040 } |
|
Ein deklarierter Konstruktor, der nicht definiert wird. Paranoia. |
|
Liefert den Content-Type. Der Wert wird bei einem erfolgreichem Ablauf von dem jeweiligen Modul abgefragt. Ist aber ein Fehler aufgetreten wird die Fehlermeldung als text/html zurückgegeben.
00123 { 00124 return contentType_; 00125 } |
|
Liefert im Fehlerfalle das Ende des HTML-Dokuments. Ebenfalls ein minimales HTML-Gerüst.
00144 { 00145 return "</pre></body></html>\n"; 00146 } |
|
Liefert im Fehlerfalle den Kopf des HTML-Dokuments. Er besteht im Moment nur aus einem minimalen HTML-Gerüst.
00138 { 00139 return "<html><head><title>Fehler</title></head><body><pre>\n"; 00140 } |
|
Liefert das Ergebnis der Anfrage. Dabei ist es egal, ob die tatsächlich zum Erfolg geführt hat. Es wird immer etwas zurückgegeben (im Falle eines Fehlers, die entsprechende Meldung).
00111 { 00112 if ( !isSuccess_ ) { 00113 resultStream_ << getErrorFooter(); 00114 return getErrorHeader() + resultStream_.str(); 00115 } 00116 return resultStream_.str(); 00117 } |
|
Sammelt die Daten, die noch benötigt werden. Dazu gehören die Umgebungsvariablen PATH_INFO und SCRIPT_NAME und ein Container (eine map) mit den Daten, die mittels CGI übergeben wurden.
00048 { 00049 if ( configFile_.empty() ) { 00050 configFile_ = "/etc/sflex.conf"; 00051 } 00052 00053 sflexConfig_ = SflexConfig::getConfig(); 00054 sflexConfig_->parseConfig( configFile_ ); 00055 00056 if ( !sflexConfig_->isSuccess() ) { 00057 resultStream_ << sflexConfig_->getError(); 00058 isSuccess_ = false; 00059 return; 00060 } 00061 00062 sflexConfig_->addPathInfo( pathInfo ); 00063 sflexConfig_->addValue( "sflex" , "scriptName", scriptName ); 00064 sflexConfig_->addCgiValues( cgiValueList ); 00065 00066 if ( !sflexConfig_->isSuccess() ) { 00067 resultStream_ << sflexConfig_->getError(); 00068 isSuccess_ = false; 00069 return; 00070 } 00071 00072 isSuccess_ = true; 00073 return; 00074 } |
|
Genereller Status des Systems. Wenn ein Fehler erkannt wird, wird dieser auf false gesetzt. Das Hauptprogramm kann darauf beispielsweise mit verschiedenen Headern reagieren.
00130 { 00131 return isSuccess_; 00132 } |
|
Erstellt das Ergebnis.
00080 { 00081 if ( !isSuccess_ ) { 00082 resultStream_ << "Sflex: Fehler in der Initialisierung!\n"; 00083 return; 00084 } 00085 00086 SflexWorkerFactory *wF = SflexWorkerFactory::getFactory(); 00087 sflexModule_ = wF->makeModule( sflexConfig_->getValue( "sflex", "module") ); 00088 if ( !sflexModule_ ) { 00089 resultStream_ << wF->getError(); 00090 isSuccess_ = false; 00091 return; 00092 } 00093 00094 sflexModule_->work(); 00095 if ( !sflexModule_->isSuccess() ) { 00096 resultStream_ << sflexModule_->getResult(); 00097 isSuccess_ = false; 00098 return; 00099 } 00100 resultStream_ << sflexModule_->getResult(); 00101 contentType_ = sflexModule_->getContentType(); 00102 isSuccess_ = true; 00103 00104 return; 00105 } |
|
Der Name der Konfigurationsdatei (mit Pfad).
|
|
Der Content-Type. Standardmäßig text/html. Wird bei einer erfolgreichen Verarbeitung eines Moduls vom selbigen überschrieben. |
|
Der Status des Objektes.
|
|
Der Ergebnis Stream.
|
|
Der Zeiger auf das Konfigurations-Objekt.
|
|
Der Zeiger auf das Modul-Objekt.
|