aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/hybrid/generator.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2009-03-08 17:23:30 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2009-03-08 17:23:30 +0200
commit0bce70a0e483294b83b8bf9d5468838a63405612 (patch)
treed11afb4998d6980435c15c4df6e40b1979531672 /xsde/cxx/hybrid/generator.cxx
parent6c63b913179127e09ed7d9da8920493ccceec6ce (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.cxx30
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;
}