// file : xsd/cxx/tree/element-map.txx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file namespace xsd { namespace cxx { namespace tree { // element_map // template void element_map:: register_parser (const qualified_name& n, parser p) { (*map_)[n].parser_ = p; } template void element_map:: register_serializer (const qualified_name& n, serializer s) { (*map_)[n].serializer_ = s; } // element_map_init // template element_map_init:: element_map_init () { if (element_map::count_ == 0) element_map::map_ = new typename element_map::map; ++element_map::count_; } template element_map_init:: ~element_map_init () { if (--element_map::count_ == 0) delete element_map::map_; } // parser_init // template parser_init:: parser_init (const std::basic_string& name, const std::basic_string& ns) { element_map::register_parser ( xml::qualified_name (name, ns), &parser_impl); } // serializer_init // template serializer_init:: serializer_init (const std::basic_string& name, const std::basic_string& ns) { element_map::register_serializer ( xml::qualified_name (name, ns), &serializer_impl); } } } }