diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2014-05-10 18:41:25 -0700 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2014-05-10 18:41:25 -0700 |
commit | 40172c8a4c903acba24b236be7c3683b373f0bea (patch) | |
tree | 5f48d188d2e17d6bad952179e6ca10b687be2ae4 /examples/persistence/driver.cxx | |
parent | 1c37ad3754f6028044be688d08f730c0928ec829 (diff) |
Add 'persistence' example
Diffstat (limited to 'examples/persistence/driver.cxx')
-rw-r--r-- | examples/persistence/driver.cxx | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/examples/persistence/driver.cxx b/examples/persistence/driver.cxx new file mode 100644 index 0000000..d62dd3b --- /dev/null +++ b/examples/persistence/driver.cxx @@ -0,0 +1,46 @@ +// file : examples/persistence/driver.cxx +// copyright : not copyrighted - public domain + +#include <fstream> +#include <iostream> + +#include <xml/parser.hxx> +#include <xml/serializer.hxx> + +#include "position.hxx" + +using namespace std; + +int +main (int argc, char* argv[]) +{ + if (argc != 2) + { + cerr << "usage: " << argv[0] << " <xml-file>" << endl; + return 1; + } + + try + { + // Load the object model state from XML. + // + ifstream ifs (argv[1]); + xml::parser p (ifs, argv[1]); + + object o (p); + + // Save the object model state back to XML. + // + xml::serializer s (cout, "output"); + + o.serialize (s); + } + // This handler will handle both parsing (xml::parsing) and serialization + // (xml::serialization) exceptions. + // + catch (const xml::exception& e) + { + cerr << e.what () << endl; + return 1; + } +} |