From 25a9484378ddaae9602ec54532cdc03b1f1924ef Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 29 Sep 2016 21:54:14 +0300 Subject: Add manifest_parser and manifest_serializer --- tests/manifest-roundtrip/driver.cxx | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tests/manifest-roundtrip/driver.cxx (limited to 'tests/manifest-roundtrip/driver.cxx') diff --git a/tests/manifest-roundtrip/driver.cxx b/tests/manifest-roundtrip/driver.cxx new file mode 100644 index 0000000..e1ce5b8 --- /dev/null +++ b/tests/manifest-roundtrip/driver.cxx @@ -0,0 +1,52 @@ +// file : tests/manifest-roundtrip/driver.cxx -*- C++ -*- +// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd +// license : MIT; see accompanying LICENSE file + +#include +#include + +#include +#include +#include + +using namespace std; +using namespace butl; + +int +main (int argc, char* argv[]) +{ + if (argc != 2) + { + cerr << "usage: " << argv[0] << " " << endl; + return 1; + } + + try + { + ifdstream ifs (argv[1]); + manifest_parser p (ifs, argv[1]); + + stdout_fdmode (fdstream_mode::binary); // Write in binary mode. + manifest_serializer s (cout, "stdout"); + + for (bool eom (true), eos (false); !eos; ) + { + manifest_name_value nv (p.next ()); + + if (nv.empty ()) // End pair. + { + eos = eom; + eom = true; + } + else + eom = false; + + s.next (nv.name, nv.value); + } + } + catch (const exception& e) + { + cerr << e.what () << endl; + return 1; + } +} -- cgit v1.1