1 #ifdef GYOTO_USE_XERCES
29 #ifndef __GyotoFactory_H_
30 #define __GyotoFactory_H_
41 #ifndef XERCES_INCLUDE_WCHAR_H
42 #define XERCES_INCLUDE_WCHAR_H 0
45 #include <xercesc/sax/ErrorHandler.hpp>
46 #include <xercesc/dom/DOM.hpp>
47 #include <xercesc/parsers/XercesDOMParser.hpp>
56 class FactoryMessenger;
57 namespace Spectrometer {
116 friend class Gyoto::FactoryMessenger;
121 xercesc::ErrorHandler *reporter_;
123 xercesc::DOMDocument *doc_;
125 xercesc::DOMElement *root_;
127 xercesc::XercesDOMParser *parser_;
129 xercesc::DOMXPathNSResolver* resolver_;
131 xercesc::DOMImplementation* impl_;
136 xercesc::DOMElement *gg_el_;
138 xercesc::DOMElement *obj_el_;
140 xercesc::DOMElement *ph_el_;
144 SmartPointer<Scenery> scenery_;
146 SmartPointer<Metric::Generic> gg_;
148 SmartPointer<Screen> screen_;
150 SmartPointer<Astrobj::Generic> obj_;
152 SmartPointer<Photon> photon_;
154 SmartPointer<Spectrometer::Generic> spectro_;
158 std::string filename_;
171 Factory(
char * filename);
174 Factory(SmartPointer<Scenery> sc);
176 Factory(SmartPointer<Metric::Generic> gg);
178 Factory(SmartPointer<Astrobj::Generic> ao);
180 Factory(SmartPointer<Spectrum::Generic> sp);
182 Factory(SmartPointer<Screen> screen);
184 Factory(SmartPointer<Photon> photon);
186 Factory(SmartPointer<Spectrometer::Generic> Spectrometer);
193 void setReporter(xercesc::ErrorHandler*);
195 xercesc::DOMElement * getRoot();
197 xercesc::DOMDocument* getDoc();
201 const std::string kind();
254 void write(
const char*
const fname=0);
257 std::string format();
266 void metric(SmartPointer<Metric::Generic> gg, xercesc::DOMElement *el);
274 void astrobj(SmartPointer<Astrobj::Generic> ao, xercesc::DOMElement *el);
282 void screen(SmartPointer<Screen> scr, xercesc::DOMElement *el);
285 void setContent(std::string content, xercesc::DOMElement *el);
296 void setParameter(std::string name, xercesc::DOMElement *pel);
308 void setParameter(std::string name,
double value,
309 xercesc::DOMElement *pel);
321 void setParameter(std::string name,
int value,
322 xercesc::DOMElement *pel);
334 void setParameter(std::string name,
unsigned int value,
335 xercesc::DOMElement *pel);
347 void setParameter(std::string name,
long value,
348 xercesc::DOMElement *pel);
360 void setParameter(std::string name,
unsigned long value,
361 xercesc::DOMElement *pel);
376 void setParameter(std::string name, std::string value,
377 xercesc::DOMElement*pel);
392 void setParameter(std::string name,
double val[],
size_t nelem,
393 xercesc::DOMElement* pel,
394 FactoryMessenger **child = NULL);
396 void setParameter(std::string name, std::vector<double>
const &val,
397 xercesc::DOMElement* pel,
398 FactoryMessenger **child = NULL);
400 void setParameter(std::string name, std::vector<unsigned long>
const &val,
401 xercesc::DOMElement* pel,
402 FactoryMessenger **child = NULL);
422 std::string fullPath(std::string relpath);
Compile-time configuration.
Spectrum of a simple object (e.g. Star)
Namespace for the Gyoto library.
Definition: GyotoAstrobj.h:43
Pointers performing reference counting.
Definition: GyotoProperty.h:41