From 424e315dfa9a78aebf0653c95f83fe6ed452dd8e Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Tue, 2 May 2017 21:26:58 +0300 Subject: Add hxx extension for headers and libstud prefix for library dir --- xml/serializer.ixx | 219 ----------------------------------------------------- 1 file changed, 219 deletions(-) delete mode 100644 xml/serializer.ixx (limited to 'xml/serializer.ixx') diff --git a/xml/serializer.ixx b/xml/serializer.ixx deleted file mode 100644 index a94dc4c..0000000 --- a/xml/serializer.ixx +++ /dev/null @@ -1,219 +0,0 @@ -// file : xml/serializer.ixx -// copyright : Copyright (c) 2013-2017 Code Synthesis Tools CC -// license : MIT; see accompanying LICENSE file - -#include - -namespace xml -{ - // serialization - // - inline serialization:: - serialization (const std::string& name, const std::string& d) - : name_ (name), description_ (d) - { - init (); - } - - inline serialization:: - serialization (const serializer& s, const std::string& d) - : name_ (s.output_name ()), description_ (d) - { - init (); - } - - // serializer - // - inline void serializer:: - start_element (const qname_type& qname) - { - start_element (qname.namespace_ (), qname.name ()); - } - - inline void serializer:: - start_element (const std::string& name) - { - start_element (std::string (), name); - } - - inline void serializer:: - end_element (const qname_type& qname) - { - end_element (qname.namespace_ (), qname.name ()); - } - - inline void serializer:: - end_element (const std::string& name) - { - end_element (std::string (), name); - } - - inline void serializer:: - element (const std::string& v) - { - if (!v.empty ()) - characters (v); - - end_element (); - } - - template - inline void serializer:: - element (const T& v) - { - element (value_traits::serialize (v, *this)); - } - - inline void serializer:: - element (const std::string& n, const std::string& v) - { - element (std::string (), n, v); - } - - template - inline void serializer:: - element (const std::string& n, const T& v) - { - element (n, value_traits::serialize (v, *this)); - } - - inline void serializer:: - element (const qname_type& qn, const std::string& v) - { - element (qn.namespace_ (), qn.name (), v); - } - - template - inline void serializer:: - element (const qname_type& qn, const T& v) - { - element (qn, value_traits::serialize (v, *this)); - } - - template - inline void serializer:: - element (const std::string& ns, const std::string& n, const T& v) - { - element (ns, n, value_traits::serialize (v, *this)); - } - - inline void serializer:: - start_attribute (const qname_type& qname) - { - start_attribute (qname.namespace_ (), qname.name ()); - } - - inline void serializer:: - start_attribute (const std::string& name) - { - start_attribute (std::string (), name); - } - - inline void serializer:: - end_attribute (const qname_type& qname) - { - end_attribute (qname.namespace_ (), qname.name ()); - } - - inline void serializer:: - end_attribute (const std::string& name) - { - end_attribute (std::string (), name); - } - - inline void serializer:: - attribute (const qname_type& qname, const std::string& value) - { - attribute (qname.namespace_ (), qname.name (), value); - } - - template - inline void serializer:: - attribute (const qname_type& qname, const T& value) - { - attribute (qname, value_traits::serialize (value, *this)); - } - - inline void serializer:: - attribute (const std::string& name, const std::string& value) - { - attribute (std::string (), name, value); - } - - template - inline void serializer:: - attribute (const std::string& name, const T& value) - { - attribute (name, value_traits::serialize (value, *this)); - } - - template - inline void serializer:: - attribute (const std::string& ns, const std::string& name, const T& value) - { - attribute (ns, name, value_traits::serialize (value, *this)); - } - - template - inline void serializer:: - characters (const T& value) - { - characters (value_traits::serialize (value, *this)); - } - - // operator<< - // - - inline serializer& - operator<< (serializer& s, void (*func) (serializer&)) - { - func (s); - return s; - } - - namespace details - { - // Detect whether T is callable with argument A. - // - template - struct is_callable - { - typedef char no[1]; - typedef char yes[2]; - template static X declval (); - - template struct check; - - template - static no& test (...); - - template - static yes& test (check () (declval ()), 0)>*); - - static const bool value = sizeof (test (0)) == sizeof (yes); - }; - - template ::value> - struct inserter; - - template - struct inserter - { - static void insert (serializer& s, const T& f) {f (s);} - }; - - template - struct inserter - { - static void insert (serializer& s, const T& v) {s.characters (v);} - }; - } - - template - inline serializer& - operator<< (serializer& s, const T& value) - { - details::inserter::insert (s, value); - return s; - } -} -- cgit v1.1