diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-08 17:23:30 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2009-03-08 17:23:30 +0200 |
commit | 0bce70a0e483294b83b8bf9d5468838a63405612 (patch) | |
tree | d11afb4998d6980435c15c4df6e40b1979531672 /xsde/cxx/hybrid/generator.cxx | |
parent | 6c63b913179127e09ed7d9da8920493ccceec6ce (diff) |
Add support for binary representations
xsde/cxx/hybrid/insertion-*: insertion operators generator
xsde/cxx/hybrid/extraction-*: extraction operators generator
libxsde/xsde/cxx/hybrid/cdr/: CDR support code
libxsde/xsde/cxx/hybrid/xdr/: XDR support code
tests/cxx/hybrid/binary/: new tests
examples/cxx/hybrid/binary/: new examples
documentation/cxx/hybrid/guide/: new chapter
Diffstat (limited to 'xsde/cxx/hybrid/generator.cxx')
-rw-r--r-- | xsde/cxx/hybrid/generator.cxx | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/xsde/cxx/hybrid/generator.cxx b/xsde/cxx/hybrid/generator.cxx index b6215f9..495e649 100644 --- a/xsde/cxx/hybrid/generator.cxx +++ b/xsde/cxx/hybrid/generator.cxx @@ -11,13 +11,17 @@ #include <cxx/hybrid/tree-size-processor.hxx> #include <cxx/hybrid/tree-name-processor.hxx> - #include <cxx/hybrid/tree-forward.hxx> #include <cxx/hybrid/tree-header.hxx> #include <cxx/hybrid/tree-inline.hxx> #include <cxx/hybrid/tree-source.hxx> #include <cxx/hybrid/tree-type-map.hxx> +#include <cxx/hybrid/insertion-header.hxx> +#include <cxx/hybrid/insertion-source.hxx> +#include <cxx/hybrid/extraction-header.hxx> +#include <cxx/hybrid/extraction-source.hxx> + #include <cxx/hybrid/parser-name-processor.hxx> #include <cxx/hybrid/parser-header.hxx> #include <cxx/hybrid/parser-source.hxx> @@ -117,6 +121,8 @@ namespace CXX extern Key suppress_validation = "suppress-validation"; extern Key suppress_parser_val = "suppress-parser-val"; extern Key suppress_serializer_val = "suppress-serializer-val"; + extern Key generate_insertion = "generate-insertion"; + extern Key generate_extraction = "generate-extraction"; extern Key generate_inline = "generate-inline"; extern Key generate_forward = "generate-forward"; extern Key generate_xml_schema = "generate-xml-schema"; @@ -238,6 +244,16 @@ namespace CXX << " serializer." << endl; + e << "--generate-insertion <os>" << endl + << " Generate data representation stream insertion\n" + << " operators for the <os> output stream type." + << endl; + + e << "--generate-extraction <is>" << endl + << " Generate data representation stream extraction\n" + << " operators for the <is> input stream type." + << endl; + e << "--generate-inline" << endl << " Generate certain functions inline." << endl; @@ -1491,6 +1507,12 @@ namespace CXX generate_tree_forward (ctx, false); generate_tree_header (ctx); + + if (!ops.value<CLI::generate_insertion> ().empty ()) + generate_insertion_header (ctx); + + if (!ops.value<CLI::generate_extraction> ().empty ()) + generate_extraction_header (ctx); } else generate_tree_forward (ctx, true); @@ -1650,6 +1672,12 @@ namespace CXX generate_tree_source (ctx); + if (!ops.value<CLI::generate_insertion> ().empty ()) + generate_insertion_source (ctx); + + if (!ops.value<CLI::generate_extraction> ().empty ()) + generate_extraction_source (ctx); + cxx << "#include <xsde/cxx/post.hxx>" << endl << endl; } |