#include <SflexWorkerFactory.hpp>
Zusammengehörigkeiten von SflexWorkerFactory:
Öffentliche Datenelemente | |
~SflexWorkerFactory () | |
SflexModule * | makeModule (std::string moduleName) |
Baut ein Modul, dessen Name übergeben werden muß. Mehr... | |
SflexXslt * | makeXslt () |
Baut einen XSLT-Transformator. Mehr... | |
SflexPdf * | makePdf () |
Baut einen PDF-Erzeuger. Mehr... | |
SflexXslOutput * | makeXslOutput (std::string extension) |
Baut ein Ausgabe-Objekt. Mehr... | |
const std::string | getError () const |
Liefert die Fehlermeldung, falls etwas schief gelaufen ist. Mehr... | |
Öffentliche, statische Datenelemente | |
SflexWorkerFactory * | getFactory () |
Liefert den Zeiger auf die Fabrik. Mehr... | |
Private Datenelemente | |
SflexWorkerFactory () | |
Paranoia. Mehr... | |
Private Attribute | |
std::ostringstream | errorStream_ |
der Stream mit einer etwagien Fehlermeldung. Mehr... | |
Statische private Attribute | |
SflexWorkerFactory * | factory_ = 0 |
der Zeiger auf die Fabrik. Mehr... |
Sie ist als 'Singleton' implementiert und steht so allen Klienten zur Verfügung. Für jede Gruppe von Arbeitern existiert eine Methode, um ein solches Objekt zu erschaffen. Es werden jeweils Zeiger auf diese Objekte zurückgeliefert. Wie es sich für eine Fabrik gehört, werden die Objekte nur erschaffen. Um die Verschrottung muß sich der Klient selbst kümmern. Die Objekte der Fabrik werden auf dem Heap erzeugt (durch ein einfaches 'new', so daß für die Zerstörung ein einfaches 'delete' verwendet werden muß).
|
00041 { 00042 00043 } |
|
Paranoia.
00034 { 00035 00036 } |
|
Liefert die Fehlermeldung, falls etwas schief gelaufen ist.
00159 { 00160 return errorStream_.str(); 00161 } |
|
Liefert den Zeiger auf die Fabrik.
00049 { 00050 if ( !factory_ ) { 00051 factory_ = new SflexWorkerFactory; 00052 return factory_; 00053 } 00054 return factory_; 00055 } |
|
Baut ein Modul, dessen Name übergeben werden muß.
00061 { 00062 SflexModule *module = 0; 00063 errorStream_.str(""); 00064 00065 if ( moduleName == "einzel" ) { 00066 module = new SflexModuleEinzel; 00067 } 00068 else if ( moduleName == "apparat" ) { 00069 module = new SflexModuleApparat; 00070 } 00071 else { 00072 errorStream_ << "Worker Factory: Das Modul " 00073 << moduleName 00074 << " kenne ich nicht!\n"; 00075 return 0; 00076 } 00077 00078 if ( !module ) { 00079 errorStream_ << "Worker Factory: Das Modul " 00080 << moduleName 00081 << " konnte nicht erzeugt werden!\n"; 00082 return 0; 00083 } 00084 00085 return module; 00086 } |
|
Baut einen PDF-Erzeuger. Im Moment wird nur SflexPdfWithPdflatex unterstützt.
00109 { 00110 SflexPdf *pdf = new SflexPdfWithPdflatex; 00111 00112 if ( !pdf ) { 00113 errorStream_ << "Worker Factory: konnte kein " 00114 << "Pdf with pdflatex generieren!\n"; 00115 return 0; 00116 } 00117 00118 return pdf; 00119 } |
|
Baut ein Ausgabe-Objekt. Welches Objekt erschaffen wird, hängt von der Extension des jeweiligen Content-Type ab. Es werden die Standard-Extensionen verwendent (also z.B. html für text/html, txt für text/plain und pdf für application/pdf).
00125 { 00126 SflexXslOutput *out = 0; 00127 errorStream_.str(""); 00128 00129 if ( extension == "html" ) { 00130 out = new SflexHtmlOutput; 00131 } 00132 else if ( extension == "pdf" ) { 00133 out = new SflexPdfOutput; 00134 } 00135 else if ( extension == "txt" ) { 00136 out = new SflexPlainTextOutput; 00137 } 00138 else { 00139 errorStream_ << "Worker Factory: Das Format " 00140 << extension 00141 << " wird nicht unterstützt!\n"; 00142 return 0; 00143 } 00144 00145 if ( !out ) { 00146 errorStream_ << "Worker Factory: Das Output-Objekt " 00147 << extension 00148 << " konnte nicht erzeugt werden!\n"; 00149 return 0; 00150 } 00151 00152 return out; 00153 } |
|
Baut einen XSLT-Transformator. Im Moment wird nur Xalan unterstützt.
00092 { 00093 SflexXslt *xslt = new SflexXsltXalan; 00094 errorStream_.str(""); 00095 00096 if ( !xslt ) { 00097 errorStream_ << "Worker Factory: konnte kein " 00098 << "Xslt Xalan generieren!\n"; 00099 return 0; 00100 } 00101 00102 return xslt; 00103 } |
|
der Stream mit einer etwagien Fehlermeldung.
|
|
der Zeiger auf die Fabrik.
|