diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-08-03 14:49:57 +0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2006-08-03 14:49:57 +0000 |
commit | 0e267e2625dba2c771996bcf537d1ebb6956ba58 (patch) | |
tree | a6425f8122d391510d021cbb56e629faca04e562 /src/libutil | |
parent | 4750f6c5ed8f74683ebaa013079e24598a753cbe (diff) |
* `nix-instantiate --print-args': produce XML output so that the
result can be used more easily by scripts.
Diffstat (limited to 'src/libutil')
-rw-r--r-- | src/libutil/Makefile.am | 3 | ||||
-rw-r--r-- | src/libutil/xml-writer.cc | 59 | ||||
-rw-r--r-- | src/libutil/xml-writer.hh | 64 |
3 files changed, 69 insertions, 57 deletions
diff --git a/src/libutil/Makefile.am b/src/libutil/Makefile.am index 8fab0c5b0..513d8ecf5 100644 --- a/src/libutil/Makefile.am +++ b/src/libutil/Makefile.am @@ -2,7 +2,8 @@ lib_LTLIBRARIES = libutil.la libutil_la_SOURCES = util.cc util.hh hash.cc hash.hh \ archive.cc archive.hh aterm.cc aterm.hh \ - aterm-map.cc aterm-map.hh + aterm-map.cc aterm-map.hh \ + xml-writer.cc xml-writer.hh if !HAVE_OPENSSL libutil_la_SOURCES += \ diff --git a/src/libutil/xml-writer.cc b/src/libutil/xml-writer.cc index 269944909..b0e25f2c7 100644 --- a/src/libutil/xml-writer.cc +++ b/src/libutil/xml-writer.cc @@ -1,61 +1,6 @@ -#include <iostream> -#include <string> -#include <list> -#include <map> #include <assert.h> -using namespace std; - -typedef map<string, string> XMLAttrs; - - -class XMLWriter -{ -private: - - ostream & output; - - bool closed; - - list<string> pendingElems; - -public: - - XMLWriter(ostream & output); - ~XMLWriter(); - - void close(); - - void openElement(const string & name, - const XMLAttrs & attrs = XMLAttrs()); - void closeElement(); - - void writeShortElement(const string & name, - const XMLAttrs & attrs = XMLAttrs()); - - void writeCharData(const string & data); - -private: - void writeAttrs(const XMLAttrs & attrs); -}; - - -class XMLOpenElement -{ -private: - XMLWriter & writer; -public: - XMLOpenElement(XMLWriter & writer, const string & name, - const XMLAttrs & attrs = XMLAttrs()) - : writer(writer) - { - writer.openElement(name, attrs); - } - ~XMLOpenElement() - { - writer.closeElement(); - } -}; +#include "xml-writer.hh" XMLWriter::XMLWriter(ostream & output) @@ -138,6 +83,7 @@ void XMLWriter::writeAttrs(const XMLAttrs & attrs) } +#if 0 int main(int argc, char * * argv) { XMLWriter doc(cout); @@ -159,3 +105,4 @@ int main(int argc, char * * argv) return 0; } +#endif diff --git a/src/libutil/xml-writer.hh b/src/libutil/xml-writer.hh new file mode 100644 index 000000000..84c7fafbc --- /dev/null +++ b/src/libutil/xml-writer.hh @@ -0,0 +1,64 @@ +#ifndef __XML_WRITER_H +#define __XML_WRITER_H + +#include <iostream> +#include <string> +#include <list> +#include <map> + +using namespace std; + + +typedef map<string, string> XMLAttrs; + + +class XMLWriter +{ +private: + + ostream & output; + + bool closed; + + list<string> pendingElems; + +public: + + XMLWriter(ostream & output); + ~XMLWriter(); + + void close(); + + void openElement(const string & name, + const XMLAttrs & attrs = XMLAttrs()); + void closeElement(); + + void writeShortElement(const string & name, + const XMLAttrs & attrs = XMLAttrs()); + + void writeCharData(const string & data); + +private: + void writeAttrs(const XMLAttrs & attrs); +}; + + +class XMLOpenElement +{ +private: + XMLWriter & writer; +public: + XMLOpenElement(XMLWriter & writer, const string & name, + const XMLAttrs & attrs = XMLAttrs()) + : writer(writer) + { + writer.openElement(name, attrs); + } + ~XMLOpenElement() + { + writer.closeElement(); + } +}; + + +#endif /* !__XML_WRITER_H */ |