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
00031 # include <string>
00032 # include <iostream>
00033
00034 namespace vcsn
00035 {
00036 namespace xml
00037 {
00038 class Handler;
00039
00040 class XML
00041 {
00042 public:
00043 XML(const std::string& name = "");
00044 XML(const XML& old);
00045 ~XML();
00046
00050 template <typename Saver, typename Conv>
00051 void operator()(std::ostream& out,
00052 const Saver& s,
00053 const Conv& conv) const;
00054
00058 template <typename Loader>
00059 void operator()(std::istream& in, Loader& l, bool check = true);
00060
00065 static int inst_;
00066 protected:
00067 const std::string name_;
00068 };
00069 }
00070 }
00071
00072 # if !defined VCSN_USE_INTERFACE_ONLY || defined VCSN_USE_LIB
00073 # include <vaucanson/xml/XML.hxx>
00074 # endif // VCSN_USE_INTERFACE_ONLY
00075
00076 #endif // ! VCSN_XML_XML_HH