diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2009-04-06 15:44:26 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2009-04-06 15:44:26 +0200 |
commit | 6e4d86618645c45d07c3a8113f4641cb9161309e (patch) | |
tree | cc03cb8d0c7dbf9ef1cc2335f31034630f49b9a1 /libxsde/xsde/cxx/serializer | |
parent | b76292f8f22817401f61158a42afcfc210102657 (diff) |
Add support for XML pretty-printing
examples/cxx/hybrid/:
examples/cxx/serializer/: turn on pretty-printing
Diffstat (limited to 'libxsde/xsde/cxx/serializer')
-rw-r--r-- | libxsde/xsde/cxx/serializer/genx/document.cxx | 22 | ||||
-rw-r--r-- | libxsde/xsde/cxx/serializer/genx/document.hxx | 22 | ||||
-rw-r--r-- | libxsde/xsde/cxx/serializer/genx/document.ixx | 5 |
3 files changed, 34 insertions, 15 deletions
diff --git a/libxsde/xsde/cxx/serializer/genx/document.cxx b/libxsde/xsde/cxx/serializer/genx/document.cxx index bba4b26..d30a106 100644 --- a/libxsde/xsde/cxx/serializer/genx/document.cxx +++ b/libxsde/xsde/cxx/serializer/genx/document.cxx @@ -64,6 +64,7 @@ namespace xsde // document_simpl // + const document_simpl::flags document_simpl::pretty_print = 0x01; document_simpl:: ~document_simpl () @@ -304,9 +305,9 @@ namespace xsde #endif void document_simpl:: - serialize (std::ostream& os) + serialize (std::ostream& os, flags f) { - serialize (&ostream_write, &ostream_flush, &os); + serialize (&ostream_write, &ostream_flush, &os, f); } #endif // XSDE_IOSTREAM @@ -351,9 +352,9 @@ namespace xsde #endif void document_simpl:: - serialize (writer& w) + serialize (writer& w, flags f) { - serialize (&write_thunk, &write_bound_thunk, &flush_thunk, &w); + serialize (&write_thunk, &write_bound_thunk, &flush_thunk, &w, f); } // Genx write functions. @@ -427,8 +428,8 @@ namespace xsde } void document_simpl:: - serialize (write_func w, write_bound_func wb, flush_func f, - void* user_data) + serialize (write_func wf, write_bound_func wbf, flush_func ff, + void* user_data, flags f) { if (xml_serializer_ == 0) { @@ -447,12 +448,15 @@ namespace xsde writer_info wi; wi.user_data = user_data; - wi.write = w; - wi.write_bound = wb; - wi.flush = f; + wi.write = wf; + wi.write_bound = wbf; + wi.flush = ff; genxSetUserData (xml_serializer_, &wi); + if (f & pretty_print) + genxSetPrettyPrint (xml_serializer_, 2); + genxSender sender; sender.send = &genx_write; sender.sendBounded = &genx_write_bound; diff --git a/libxsde/xsde/cxx/serializer/genx/document.hxx b/libxsde/xsde/cxx/serializer/genx/document.hxx index 19117d6..ee06795 100644 --- a/libxsde/xsde/cxx/serializer/genx/document.hxx +++ b/libxsde/xsde/cxx/serializer/genx/document.hxx @@ -189,6 +189,13 @@ namespace xsde void reset (); + public: + // Serialization flags. + // + typedef unsigned short flags; + + static const flags pretty_print; + #ifdef XSDE_IOSTREAM public: // Serialize to std::ostream. The std::ios_base::failure @@ -197,7 +204,7 @@ namespace xsde // used. // void - serialize (std::ostream&); + serialize (std::ostream&, flags = 0); #endif public: @@ -205,7 +212,7 @@ namespace xsde // output XML. // void - serialize (writer&); + serialize (writer&, flags = 0); // Serialize by calling the write and flush functions. If the // unbounded write function is not provided, the bounded version @@ -226,10 +233,17 @@ namespace xsde #endif void - serialize (write_bound_func, flush_func, void* user_data); + serialize (write_bound_func, + flush_func, + void* user_data, + flags = 0); void - serialize (write_func, write_bound_func, flush_func, void* user_data); + serialize (write_func, + write_bound_func, + flush_func, + void* user_data, + flags = 0); public: // Low-level, genx-specific serialization. With this method diff --git a/libxsde/xsde/cxx/serializer/genx/document.ixx b/libxsde/xsde/cxx/serializer/genx/document.ixx index 7269fa6..7001ece 100644 --- a/libxsde/xsde/cxx/serializer/genx/document.ixx +++ b/libxsde/xsde/cxx/serializer/genx/document.ixx @@ -66,9 +66,10 @@ namespace xsde #endif inline void document_simpl:: - serialize (write_bound_func wb, flush_func f, void* user_data) + serialize (write_bound_func wbf, flush_func ff, + void* user_data, flags f) { - serialize (0, wb, f, user_data); + serialize (0, wbf, ff, user_data, f); } #ifndef XSDE_EXCEPTIONS |