diff options
Diffstat (limited to 'xsde/cxx/hybrid/elements.cxx')
-rw-r--r-- | xsde/cxx/hybrid/elements.cxx | 42 |
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:: |