diff --git a/src/xmlwrite.h b/src/xmlwrite.h new file mode 100644 --- /dev/null +++ b/src/xmlwrite.h @@ -0,0 +1,70 @@ +/* + * + * $Id$ + * + * This file is part of the Virtual Leaf. + * + * The Virtual Leaf is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * The Virtual Leaf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with the Virtual Leaf. If not, see . + * + * Copyright 2010 Roeland Merks. + * + */ + + +#ifndef _XML_WRITE_H_ +#define _XML_WRITE_H_ + +#include +#include +#include + +namespace XMLIO { + + std::vector XMLReadValArray(xmlNode *cur); + void XMLWriteLeafSourceCode(xmlNode *parent); + void XMLWriteReactionsCode(xmlNode *parent); + template long list_index (For beg, For end, E *elem) { + + long n = 0; + for (For i=beg; + i!=end; + i++) { + if (*i == elem) { + return n; + } + n++; + } + return -1; + } + +} + + +static const char * bool_names[2] = {"true","false"}; + +inline const char *bool_name(bool q) { return q ? bool_names[0] : bool_names[1]; } + +inline bool strtobool(const char *str) { + if (!strcmp(str, "true")) { + return true; + } else { + if (!strcmp(str, "false")) { + return false; + } else { + throw("Error in xmlwrite.cpp : strtobool(const char *str). Parameter passed other than \"true\" or \"false\"."); + } + } +} + +#endif