00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef VCSN_XML_XML_HH
00019 # define VCSN_XML_XML_HH
00020
00021 # include <string>
00022 # include <iostream>
00023
00034 namespace vcsn
00035 {
00036 namespace xml
00037 {
00038 class XML
00039 {
00040 public:
00041 XML(const std::string& name = "", bool use_label_node = false);
00042 XML(const XML& old);
00043 ~XML();
00044
00045 void
00046 check(bool check);
00047
00049 template <typename Saver, typename Conv>
00050 void operator()(std::ostream& out,
00051 const Saver& s,
00052 const Conv& conv) const;
00053
00054
00056 template <typename Loader>
00057 void operator()(std::istream& in, Loader& l);
00058
00059 static int inst_;
00060 protected:
00061 const std::string name_;
00062 bool use_label_node_;
00063 bool check_;
00064 };
00065 }
00066 }
00067
00068 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
00069 # include <vaucanson/xml/XML.hxx>
00070 # endif // VCSN_USE_INTERFACE_ONLY
00071
00072 #endif // ! VCSN_XML_XML_HH