00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifndef _input_handler_h
00029
#define _input_handler_h
00030
00031
#include "XMLHandler.h"
00032
#include <xercesc/dom/DOMElement.hpp>
00033
00034
#include <iostream>
00035
#include <cassert>
00036
#include <string>
00037
#include <stdexcept>
00038
#include <map>
00039
00040 XERCES_CPP_NAMESPACE_USE
00041
using namespace std;
00042
00043 class InputHandler :
public XMLHandler
00044 {
00045
00046
private:
00047 int argc;
00048 char**
argv;
00049 bool isXML,
doList;
00050
00051 DOMElement *
rootElem, *
greenElem, *
loadElem, *
kernelElem;
00052
00053 void listOptions(){};
00054
void readCommandline();
00055
void initDOM();
00056 string
getAttributeValue(
const XMLCh* parentNode,
const XMLCh* elementNode,
const XMLCh* elementName);
00057 string
getAttributeValueByName(
const XMLCh* elementNode,
const XMLCh* elementName,
const XMLCh* name);
00058
void initParamsFromDOM(DOMNode *node, multimap<string, double*>);
00059
void resolveParamNamesInDOM(DOMNode *node, multimap<string, double*>);
00060
void addParamToDOM(DOMElement *node, string name, string value);
00061
void addPluginToDOM(DOMElement *node, string name);
00062
00064
InputHandler(
const InputHandler& x);
00065
00066
public:
00067
InputHandler(
int,
char**);
00068
~InputHandler();
00069
00070
void init();
00071
void initParamsFromDOM();
00072
00073
00074
00075 string
getGreenPlugin();
00076 string
getGreenPlugin(string);
00077 string
getLoadPlugin();
00078 string
getLoadPlugin(string);
00079 string
getLoadHistoryPlugin();
00080 string
getLoadHistoryPlugin(string);
00081 string
getKernelPlugin();
00082 string
getKernelPlugin(string);
00083 string
getOutputPlugin();
00084 string
getOutputPlugin(string);
00085 string
getFileName(string type);
00086 string
getResultFileName();
00087
int getRegion(string direction);
00088
int getGridSize();
00089
int getTimeSteps();
00090 DOMNode*
getExperiment();
00091 list<string>
getPostProcessorNameList();
00092
00093
00094
00095 void setXML(
bool b){}
00096 void setList(
bool b){}
00097 };
00098
00099
#endif // _input_handler_h