00001 /* 00002 * ==================================================================== 00003 * Copyright (c) 2002-2004 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 00021 namespace svn 00022 { 00023 00027 class Exception 00028 { 00029 public: 00033 Exception (const char * message) throw (); 00034 00035 ~Exception () throw (); 00036 00040 const char * message () const; 00041 00045 const apr_status_t apr_err () const; 00046 00047 protected: 00048 struct Data; 00049 Data * m; 00050 00051 private: 00052 00053 Exception (const Exception &) throw (); 00054 00055 Exception () throw (); 00056 00057 Exception & operator = (const Exception &); 00058 }; 00059 00063 class ClientException : public Exception 00064 { 00065 public: 00069 ClientException (svn_error_t * error) throw (); 00070 00071 00075 ClientException (apr_status_t status) throw (); 00076 00080 ClientException (const ClientException & src) throw (); 00081 00082 virtual ~ClientException () throw (); 00083 00084 private: 00085 ClientException () throw (); 00086 00087 ClientException & operator = (ClientException &); 00088 }; 00089 00090 } 00091 00092 #endif 00093 /* ----------------------------------------------------------------- 00094 * local variables: 00095 * eval: (load-file "../../rapidsvn-dev.el") 00096 * end: 00097 */