aboutsummaryrefslogtreecommitdiff
path: root/xsde/cxx/hybrid/elements.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'xsde/cxx/hybrid/elements.cxx')
-rw-r--r--xsde/cxx/hybrid/elements.cxx42
1 files changed, 41 insertions, 1 deletions
diff --git a/xsde/cxx/hybrid/elements.cxx b/xsde/cxx/hybrid/elements.cxx
index 454d0c3..c7609ff 100644
--- a/xsde/cxx/hybrid/elements.cxx
+++ b/xsde/cxx/hybrid/elements.cxx
@@ -41,11 +41,29 @@ namespace CXX
fwd_expr (fe),
hxx_expr (he),
ixx_expr (ie),
- ns_stack (ns_stack_)
+ ns_stack (ns_stack_),
+ istreams (ops.value<CLI::generate_extraction> ()),
+ ostreams (ops.value<CLI::generate_insertion> ()),
+ icdrstream (icdrstream_),
+ ocdrstream (ocdrstream_),
+ ixdrstream (ixdrstream_),
+ oxdrstream (oxdrstream_)
{
String xs_ns (xs_ns_name ());
string_type = L"::xsde::cxx::ro_string";
+
+ if (!ostreams.empty ())
+ {
+ ocdrstream = xs_ns + L"::ocdrstream";
+ oxdrstream = xs_ns + L"::oxdrstream";
+ }
+
+ if (!istreams.empty ())
+ {
+ icdrstream = xs_ns + L"::icdrstream";
+ ixdrstream = xs_ns + L"::ixdrstream";
+ }
}
// Parser
@@ -384,6 +402,28 @@ namespace CXX
}
}
+ String Context::
+ istream (NarrowString const& is) const
+ {
+ if (is == "CDR")
+ return icdrstream;
+ else if (is == "XDR")
+ return ixdrstream;
+ else
+ return is;
+ }
+
+ String Context::
+ ostream (NarrowString const& os) const
+ {
+ if (os == "CDR")
+ return ocdrstream;
+ else if (os == "XDR")
+ return oxdrstream;
+ else
+ return os;
+ }
+
// Namespace
//
Namespace::