00001 /* 00002 * ==================================================================== 00003 * Copyright (c) 2002, 2003 The RapidSvn Group. All rights reserved. 00004 * 00005 * This software is licensed as described in the file LICENSE.txt, 00006 * which you should have received as part of this distribution. 00007 * 00008 * This software consists of voluntary contributions made by many 00009 * individuals. For exact contribution history, see the revision 00010 * history and logs, available at http://rapidsvn.tigris.org/. 00011 * ==================================================================== 00012 */ 00013 00014 #ifndef _SVNCPP_EXCEPTION_H_ 00015 #define _SVNCPP_EXCEPTION_H_ 00016 00017 // subversion api 00018 #include "svn_client.h" 00019 00020 namespace svn 00021 { 00022 00026 class Exception 00027 { 00028 public: 00032 Exception (const char * message) throw (); 00033 00034 ~Exception () throw (); 00035 00039 const char * message () const; 00040 00044 const apr_status_t apr_err () const; 00045 00046 protected: 00047 struct Data; 00048 Data * m; 00049 00050 private: 00051 00052 Exception (const Exception &) throw (); 00053 00054 Exception () throw (); 00055 00056 Exception & operator = (const Exception &); 00057 }; 00058 00062 class ClientException : public Exception 00063 { 00064 public: 00068 ClientException (svn_error_t * error) throw (); 00069 00073 ClientException (const ClientException & src) throw (); 00074 00075 virtual ~ClientException () throw (); 00076 00077 private: 00078 ClientException () throw (); 00079 00080 ClientException & operator = (ClientException &); 00081 }; 00082 00083 } 00084 00085 #endif 00086 /* ----------------------------------------------------------------- 00087 * local variables: 00088 * eval: (load-file "../../rapidsvn-dev.el") 00089 * end: 00090 */