1 #ifdef GYOTO_USE_XERCES
29 #ifndef __GyotoFactory_H_
30 #define __GyotoFactory_H_
39 #ifndef XERCES_INCLUDE_WCHAR_H
40 #define XERCES_INCLUDE_WCHAR_H 0
43 #include <xercesc/sax/ErrorHandler.hpp>
44 #include <xercesc/dom/DOM.hpp>
45 #include <xercesc/parsers/XercesDOMParser.hpp>
54 class FactoryMessenger;
55 namespace Spectrometer {
114 friend class Gyoto::FactoryMessenger;
119 xercesc::ErrorHandler *reporter_;
121 xercesc::DOMDocument *doc_;
123 xercesc::DOMElement *root_;
125 xercesc::XercesDOMParser *parser_;
127 xercesc::DOMXPathNSResolver* resolver_;
129 xercesc::DOMImplementation* impl_;
134 xercesc::DOMElement *gg_el_;
136 xercesc::DOMElement *obj_el_;
138 xercesc::DOMElement *ph_el_;
142 SmartPointer<Scenery> scenery_;
144 SmartPointer<Metric::Generic> gg_;
146 SmartPointer<Screen> screen_;
148 SmartPointer<Astrobj::Generic> obj_;
150 SmartPointer<Photon> photon_;
152 SmartPointer<Spectrometer::Generic> spectro_;
156 std::string filename_;
162 Factory(
char * filename);
165 Factory(SmartPointer<Scenery> sc);
167 Factory(SmartPointer<Metric::Generic> gg);
169 Factory(SmartPointer<Astrobj::Generic> ao);
171 Factory(SmartPointer<Spectrum::Generic> sp);
173 Factory(SmartPointer<Screen> screen);
175 Factory(SmartPointer<Photon> photon);
177 Factory(SmartPointer<Spectrometer::Generic> Spectrometer);
184 void setReporter(xercesc::ErrorHandler*);
186 xercesc::DOMElement * getRoot();
188 xercesc::DOMDocument* getDoc();
192 const std::string kind();
245 void write(
const char*
const fname=0);
248 std::string format();
257 void metric(SmartPointer<Metric::Generic> gg, xercesc::DOMElement *el);
265 void astrobj(SmartPointer<Astrobj::Generic> ao, xercesc::DOMElement *el);
273 void screen(SmartPointer<Screen> scr, xercesc::DOMElement *el);
276 void setContent(std::string content, xercesc::DOMElement *el);
287 void setParameter(std::string name, xercesc::DOMElement *pel);
299 void setParameter(std::string name,
double value,
300 xercesc::DOMElement *pel);
312 void setParameter(std::string name,
int value,
313 xercesc::DOMElement *pel);
325 void setParameter(std::string name,
unsigned int value,
326 xercesc::DOMElement *pel);
338 void setParameter(std::string name,
long value,
339 xercesc::DOMElement *pel);
351 void setParameter(std::string name,
unsigned long value,
352 xercesc::DOMElement *pel);
367 void setParameter(std::string name, std::string value,
368 xercesc::DOMElement*pel);
383 void setParameter(std::string name,
double val[],
size_t nelem,
384 xercesc::DOMElement* pel,
385 FactoryMessenger **child = NULL);
392 std::string fullPath(std::string relpath);
Pointers performing reference counting.
Definition: GyotoSmartPointer.h:51
Compile-time configuration.
Spectrum of a simple object (e.g. Star)
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:42