aboutsummaryrefslogtreecommitdiff
path: root/xsd/cxx/tree/stream-extraction-source.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-04-11 16:47:17 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-04-11 16:47:17 +0200
commitbda619aa6ace8ed83d9888ea78f15c7c313c2044 (patch)
treeddaa22c35adb093f08ba5057069bb92690b8a6c0 /xsd/cxx/tree/stream-extraction-source.cxx
parentf7f415cfca286078d373960c77e4798cd4078ccf (diff)
Add support for polymorphic map plates
Diffstat (limited to 'xsd/cxx/tree/stream-extraction-source.cxx')
-rw-r--r--xsd/cxx/tree/stream-extraction-source.cxx52
1 files changed, 28 insertions, 24 deletions
diff --git a/xsd/cxx/tree/stream-extraction-source.cxx b/xsd/cxx/tree/stream-extraction-source.cxx
index 622056f..4704fb3 100644
--- a/xsd/cxx/tree/stream-extraction-source.cxx
+++ b/xsd/cxx/tree/stream-extraction-source.cxx
@@ -70,8 +70,8 @@ namespace CXX
os << "static" << endl
<< "const ::xsd::cxx::tree::stream_extraction_initializer< " <<
- "0, " << i->c_str () << ", " <<
- char_type << ", " << name << " >" << endl
+ poly_plate << ", " << i->c_str () << ", " << char_type <<
+ ", " << name << " >" << endl
<< "_xsd_" << name << "_stream_extraction_init_" <<
n++ << " (" << endl
<< strlit (l.name ()) << "," << endl
@@ -141,8 +141,8 @@ namespace CXX
os << "static" << endl
<< "const ::xsd::cxx::tree::stream_extraction_initializer< " <<
- "0, " << i->c_str () << ", " <<
- char_type << ", " << name << " >" << endl
+ poly_plate << ", " << i->c_str () << ", " << char_type <<
+ ", " << name << " >" << endl
<< "_xsd_" << name << "_stream_extraction_init_" <<
n++ << " (" << endl
<< strlit (u.name ()) << "," << endl
@@ -237,8 +237,8 @@ namespace CXX
os << "static" << endl
<< "const ::xsd::cxx::tree::stream_extraction_initializer< " <<
- "0, " << i->c_str () << ", " <<
- char_type << ", " << name << " >" << endl
+ poly_plate << ", " << i->c_str () << ", " << char_type <<
+ ", " << name << " >" << endl
<< "_xsd_" << name << "_stream_extraction_init_" <<
n++ << " (" << endl
<< strlit (e.name ()) << "," << endl
@@ -366,8 +366,9 @@ namespace CXX
<< "else"
<< "{"
<< "::std::auto_ptr< ::xsd::cxx::tree::type > tmp (" << endl
- << "::xsd::cxx::tree::stream_extraction_map_instance< 0, " <<
- stream << ", " << char_type << " > ().extract (" << endl
+ << "::xsd::cxx::tree::stream_extraction_map_instance< " <<
+ poly_plate << ", " << stream << ", " << char_type <<
+ " > ().extract (" << endl
<< "s, f, this));"
<< "r.reset (dynamic_cast< " << type << "* > (tmp.get ()));"
<< "if (r.get ())" << endl
@@ -414,8 +415,9 @@ namespace CXX
<< "else"
<< "{"
<< "::std::auto_ptr< ::xsd::cxx::tree::type > tmp (" << endl
- << "::xsd::cxx::tree::stream_extraction_map_instance< 0, " <<
- stream << ", " << char_type << " > ().extract (" << endl
+ << "::xsd::cxx::tree::stream_extraction_map_instance< " <<
+ poly_plate << ", " << stream << ", " << char_type <<
+ " > ().extract (" << endl
<< "s, f, this));"
<< "r.reset (dynamic_cast< " << type << "* > (tmp.get ()));"
<< "if (r.get ())" << endl
@@ -457,8 +459,9 @@ namespace CXX
<< "else"
<< "{"
<< "::std::auto_ptr< ::xsd::cxx::tree::type > tmp (" << endl
- << "::xsd::cxx::tree::stream_extraction_map_instance< 0, " <<
- stream << ", " << char_type << " > ().extract (" << endl
+ << "::xsd::cxx::tree::stream_extraction_map_instance< " <<
+ poly_plate << ", " << stream << ", " << char_type <<
+ " > ().extract (" << endl
<< "s, f, this));"
<< "r.reset (dynamic_cast< " << type << "* > (tmp.get ()));"
<< "if (r.get ())" << endl
@@ -674,8 +677,8 @@ namespace CXX
os << "static" << endl
<< "const ::xsd::cxx::tree::stream_extraction_initializer< " <<
- "0, " << i->c_str () << ", " <<
- char_type << ", " << name << " >" << endl
+ poly_plate << ", " << i->c_str () << ", " << char_type <<
+ ", " << name << " >" << endl
<< "_xsd_" << name << "_stream_extraction_init_" <<
n++ << " (" << endl
<< strlit (c.name ()) << "," << endl
@@ -729,22 +732,22 @@ namespace CXX
if (export_maps)
ctx.os << "template struct __declspec (dllexport) " <<
- "stream_extraction_plate< 0, " << stream << ", " <<
- ctx.char_type << " >;";
+ "stream_extraction_plate< " << ctx.poly_plate << ", " <<
+ stream << ", " << ctx.char_type << " >;";
if (import_maps)
ctx.os << "template struct __declspec (dllimport) " <<
- "stream_extraction_plate< 0, " << stream << ", " <<
- ctx.char_type << " >;";
+ "stream_extraction_plate< " << ctx.poly_plate << ", " <<
+ stream << ", " << ctx.char_type << " >;";
ctx.os << "#elif defined(__GNUC__) && __GNUC__ >= 4" << endl
<< "template struct __attribute__ ((visibility(\"default\"))) " <<
- "stream_extraction_plate< 0, " << stream << ", " <<
- ctx.char_type << " >;"
+ "stream_extraction_plate< " << ctx.poly_plate << ", " <<
+ stream << ", " << ctx.char_type << " >;"
<< "#elif defined(XSD_MAP_VISIBILITY)" << endl
<< "template struct XSD_MAP_VISIBILITY " <<
- "stream_extraction_plate< 0, " << stream << ", " <<
- ctx.char_type << " >;"
+ "stream_extraction_plate< " << ctx.poly_plate << ", " <<
+ stream << ", " << ctx.char_type << " >;"
<< "#endif" << endl;
}
@@ -766,8 +769,9 @@ namespace CXX
String stream (*i);
ctx.os << "static" << endl
- << "const ::xsd::cxx::tree::stream_extraction_plate< 0, " <<
- stream << ", " << ctx.char_type << " >" << endl
+ << "const ::xsd::cxx::tree::stream_extraction_plate< " <<
+ ctx.poly_plate << ", " << stream << ", " << ctx.char_type <<
+ " >" << endl
<< "stream_extraction_plate_init_" << n++ << ";";
}