SvnCpp
exception.hpp
Go to the documentation of this file.
1 /*
2  * ====================================================================
3  * Copyright (c) 2002-2009 The RapidSvn Group. All rights reserved.
4  *
5  * This program is free software: you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, either version 3 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program (in the file GPL.txt.
17  * If not, see <http://www.gnu.org/licenses/>.
18  *
19  * This software consists of voluntary contributions made by many
20  * individuals. For exact contribution history, see the revision
21  * history and logs, available at http://rapidsvn.tigris.org/.
22  * ====================================================================
23  */
24 
25 #ifndef _SVNCPP_EXCEPTION_H_
26 #define _SVNCPP_EXCEPTION_H_
27 
28 // subversion api
29 #include "svn_client.h"
30 
31 
32 namespace svn
33 {
34 
38  class Exception
39  {
40  public:
44  Exception(const char * message) throw();
45 
46  ~Exception() throw();
47 
51  const char * message() const;
52 
56  apr_status_t apr_err() const;
57 
58  protected:
59  struct Data;
60  Data * m;
61 
62  private:
63 
64  Exception(const Exception &) throw();
65 
66  Exception() throw();
67 
68  Exception & operator = (const Exception &);
69  };
70 
74  class ClientException : public Exception
75  {
76  public:
80  ClientException(svn_error_t * error) throw();
81 
82 
86  ClientException(apr_status_t status) throw();
87 
88  ClientException(const char * message) throw()
89  : Exception(message)
90  {
91  }
92 
93 
97  ClientException(const ClientException & src) throw();
98 
99  virtual ~ClientException() throw();
100 
101  private:
102  ClientException() throw();
103 
104  ClientException & operator = (ClientException &);
105  };
106 
107 }
108 
109 #endif
110 /* -----------------------------------------------------------------
111  * local variables:
112  * eval: (load-file "../../rapidsvn-dev.el")
113  * end:
114  */