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