00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_TOOLS_DOT_FORMAT_HH
00018 # define VCSN_TOOLS_DOT_FORMAT_HH
00019 
00020 #include <iostream>
00021 #include <string>
00022 
00023 namespace vcsn {
00024 
00025   namespace io {
00026 
00027     struct dot
00028     {
00029       inline dot(const std::string& auto_name = "automaton");
00030 
00031       template <typename Saver, typename Conv>
00032       void operator()(std::ostream& out,
00033                       const Saver& s,
00034                       const Conv& conv) const;
00035 
00036     protected:
00037       std::string name_;
00038     };
00039 
00040     struct transducer_dot
00041     {
00042       inline transducer_dot(const std::string& auto_name = "transducer");
00043 
00044       template <typename Saver, typename Conv>
00045       void operator()(std::ostream& out,
00046                       const Saver& s,
00047                       const Conv& conv) const;
00048 
00049     protected:
00050       std::string name_;
00051     };
00052 
00053   } 
00054 
00055 } 
00056 
00057 
00058 #ifndef VCSN_USE_INTERFACE_ONLY
00059 # include <vaucanson/tools/dot_format.hxx>
00060 #endif // VCSN_USE_INTERFACE_ONLY
00061 
00062 
00063 #endif // ! VCSN_TOOLS_DOT_FORMAT_HH