sbuild-parse-error.h

Go to the documentation of this file.
00001 /* Copyright © 2005-2006  Roger Leigh <rleigh@debian.org>
00002  *
00003  * schroot is free software; you can redistribute it and/or modify it
00004  * under the terms of the GNU General Public License as published by
00005  * the Free Software Foundation; either version 2 of the License, or
00006  * (at your option) any later version.
00007  *
00008  * schroot is distributed in the hope that it will be useful, but
00009  * WITHOUT ANY WARRANTY; without even the implied warranty of
00010  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011  * General Public License for more details.
00012  *
00013  * You should have received a copy of the GNU General Public License
00014  * along with this program; if not, write to the Free Software
00015  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00016  * MA  02111-1307  USA
00017  *
00018  *********************************************************************/
00019 
00020 #ifndef SBUILD_PARSE_ERROR_H
00021 #define SBUILD_PARSE_ERROR_H
00022 
00023 #include <sbuild/sbuild-custom-error.h>
00024 #include <sbuild/sbuild-null.h>
00025 
00026 #include <map>
00027 #include <string>
00028 
00029 namespace sbuild
00030 {
00031 
00035   template<typename T>
00036   class parse_error : public error<T>
00037   {
00038   public:
00039     typedef typename error<T>::error_type error_type;
00040 
00047     template<typename C>
00048     parse_error (C const&   context,
00049                  error_type error):
00050       sbuild::error<T>(format_error(context, null(), null(), error, null(), null()),
00051                        format_reason(context, null(), null(), error, null(), null()))
00052     {
00053     }
00054 
00061     template<typename D>
00062     parse_error (error_type error,
00063                  D const&   detail):
00064       sbuild::error<T>(format_error(null(), null(), null(), error, detail, null()),
00065                        format_reason(null(), null(), null(), error, detail, null()))
00066     {
00067     }
00068 
00076     template<typename D>
00077     parse_error (size_t     line,
00078                  error_type error,
00079                  D const&   detail):
00080       sbuild::error<T>(format_error(line, null(), null(), error, detail, null()),
00081                        format_reason(line, null(), null(), error, detail, null()))
00082     {
00083     }
00084 
00093     template<typename D>
00094     parse_error (size_t             line,
00095                  std::string const& group,
00096                  error_type         error,
00097                  D const&           detail):
00098       sbuild::error<T>(format_error(line, group, null(), error, detail, null()),
00099                        format_reason(line, group, null(), error, detail, null()))
00100     {
00101     }
00102 
00112     template<typename D>
00113     parse_error (size_t             line,
00114                  std::string const& group,
00115                  std::string const& key,
00116                  error_type         error,
00117                  D const&           detail):
00118       sbuild::error<T>(format_error(line, group, key, error, detail, null()),
00119                        format_reason(line, group, key, error, detail, null()))
00120     {
00121     }
00122 
00130     template<typename D>
00131     parse_error (std::string const& group,
00132                  error_type         error,
00133                  D const&           detail):
00134       sbuild::error<T>(format_error(group, null(), null(), error, detail, null()),
00135                        format_reason(group, null(), null(), error, detail, null()))
00136     {
00137     }
00138 
00147     template<typename D>
00148     parse_error (std::string const& group,
00149                  std::string const& key,
00150                  error_type         error,
00151                  D const&           detail):
00152       sbuild::error<T>(format_error(group, key, null(), error, detail, null()),
00153                        format_reason(group, key, null(), error, detail, null()))
00154     {
00155     }
00156 
00163     template<typename C>
00164     parse_error (C const&                  context,
00165                  std::runtime_error const& error):
00166       sbuild::error<T>(sbuild::error<T>::format_error(context, null(), null(), error, null(), null()),
00167                        sbuild::error<T>::format_reason(context, null(), null(), error, null(), null()))
00168     {
00169     }
00170 
00177     parse_error (size_t                    line,
00178                  std::runtime_error const& error):
00179       sbuild::error<T>(sbuild::error<T>::format_error(line, null(), null(), error, null(), null()),
00180                        sbuild::error<T>::format_reason(line, null(), null(), error, null(), null()))
00181     {
00182     }
00183 
00191     parse_error (size_t                    line,
00192                  std::string const&        group,
00193                  std::runtime_error const& error):
00194       sbuild::error<T>(sbuild::error<T>::format_error(line, group, null(), error, null(), null()),
00195                        sbuild::error<T>::format_reason(line, group, null(), error, null(), null()))
00196     {
00197     }
00198 
00207     parse_error (size_t                    line,
00208                  std::string const&        group,
00209                  std::string const&        key,
00210                  std::runtime_error const& error):
00211       sbuild::error<T>(sbuild::error<T>::format_error(line, group, key, error, null(), null()),
00212                        sbuild::error<T>::format_reason(line, group, key, error, null(), null()))
00213     {
00214     }
00215 
00222     parse_error (std::string const&        group,
00223                  std::runtime_error const& error):
00224       sbuild::error<T>(sbuild::error<T>::format_error(group, null(), null(), error, null(), null()),
00225                        sbuild::error<T>::format_reason(group, null(), null(), error, null(), null()))
00226     {
00227     }
00228 
00236     parse_error (std::string const&        group,
00237                  std::string const&        key,
00238                  std::runtime_error const& error):
00239       sbuild::error<T>(sbuild::error<T>::format_error(group, key, null(), error, null(), null()),
00240                        sbuild::error<T>::format_reason(group, key, null(), error, null(), null()))
00241     {
00242     }
00243 
00244   };
00245 
00246 }
00247 
00248 #endif /* SBUILD_PARSE_ERROR_H */
00249 
00250 /*
00251  * Local Variables:
00252  * mode:C++
00253  * End:
00254  */

Generated on Mon Sep 11 23:12:44 2006 for schroot by  doxygen 1.4.7