#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. 
 | 
 1.2.14 geschrieben von Dimitri van Heesch,
 © 1997-2002
1.2.14 geschrieben von Dimitri van Heesch,
 © 1997-2002