diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2025-05-02 07:42:02 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2025-05-02 07:42:02 +0200 |
commit | fc486627a4ecbae797fa6856d8a9204ea85f4db8 (patch) | |
tree | ff3dae4c0e5d980d8e2da4fc6256ae839269bbcd /xsd/examples/cxx/tree/performance/driver.cxx | |
parent | 1c188393cd2e271ed2581471b601fb5960777fd8 (diff) | |
parent | ecba0bbd9947036dd82f16ab95252f8db445e149 (diff) |
Merge tag 'debian/4.0.0-10' into developdevelop
Bugfix release
Diffstat (limited to 'xsd/examples/cxx/tree/performance/driver.cxx')
-rw-r--r-- | xsd/examples/cxx/tree/performance/driver.cxx | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/xsd/examples/cxx/tree/performance/driver.cxx b/xsd/examples/cxx/tree/performance/driver.cxx new file mode 100644 index 0000000..b626e4d --- /dev/null +++ b/xsd/examples/cxx/tree/performance/driver.cxx @@ -0,0 +1,90 @@ +// file : examples/cxx/tree/performance/driver.cxx +// copyright : not copyrighted - public domain + +#include <string> +#include <sstream> +#include <iostream> + +#include <xercesc/util/PlatformUtils.hpp> + +using namespace std; + +// See parsing.cxx +// +bool +parsing (const char* file, unsigned long iter, bool validate); + +// See serialization.cxx +// +bool +serialization (const char* file, unsigned long iter); + +int +main (int argc, char* argv[]) +{ + if (argc < 2) + { + cerr << "usage: " << argv[0] << " [-v] [-i <count>] test.xml" << endl + << "\t -v turn on validation (default is off)" << endl + << "\t -i number of iterations to perform (default is 1000)" << endl; + return 1; + } + + bool validate (false); + unsigned long iter (1000); + const char* file (0); + + // Parse command line arguments. + // + for (int i (1); i < argc; ++i) + { + std::string arg (argv[i]); + + if (arg == "-v") + { + validate = true; + } + else if (arg == "-i") + { + if (++i == argc) + { + cerr << "argument expected for the -i option" << endl; + return 1; + } + + iter = 0; + istringstream is (argv[i]); + is >> iter; + + if (iter == 0) + { + cerr << "invalid argument for the -i option" << endl; + return 1; + } + } + else + { + file = argv[i]; + break; + } + } + + if (file == 0) + { + cerr << "no input file specified" << endl; + return 1; + } + + int r (0); + + xercesc::XMLPlatformUtils::Initialize (); + + // Call parsing and serialization tests. + // + if (!parsing (file, iter, validate) || !serialization (file, iter)) + r = 1; + + xercesc::XMLPlatformUtils::Terminate (); + + return r; +} |