00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <vaucanson/config/system.hh>
00019
00020 #if not defined (VCSN_XML_XML_HH) and \
00021 (not defined (VCSN_SANITY_CHECK) or defined (VCSN_USE_XML))
00022 # define VCSN_XML_XML_HH
00023
00024 # ifndef VCSN_USE_XML
00025 # error Vaucanson XML support is disabled.
00026 # endif
00027
00039 # include <vaucanson/tools/usual_macros.hh>
00040 # include <vaucanson/xml/xml_converter.hh>
00041
00042
00043 namespace vcsn
00044 {
00045 namespace xml
00046 {
00047 struct XML
00048 {
00049 XML(const std::string& name = "", bool use_label_node = false) :
00050 name_(name), use_label_node_(use_label_node)
00051 {}
00052 template <typename Saver, typename Conv>
00053 void operator()(std::ostream& out,
00054 const Saver& s,
00055 const Conv& conv) const;
00056
00057 template<typename Loader>
00058 void operator()(std::istream& in, Loader& l);
00059
00060 protected:
00061 const std::string name_;
00062 bool use_label_node_;
00063 };
00064
00065 }
00066
00067 }
00068
00069
00070 # ifndef VCSN_USE_INTERFACE_ONLY
00071 # include <vaucanson/xml/XML.hxx>
00072 # endif // VCSN_USE_INTERFACE_ONLY
00073
00074 #endif // ! VCSN_XML_XML_HH && (! VCSN_SANITY_CHECK || VCSN_USE_XML)