1 /* $NetBSD: LDAPException.h,v 1.1.1.2 2010/03/08 02:14:20 lukem Exp $ */ 2 3 // OpenLDAP: pkg/ldap/contrib/ldapc++/src/LDAPException.h,v 1.5.8.3 2008/04/14 23:09:26 quanah Exp 4 /* 5 * Copyright 2000, OpenLDAP Foundation, All Rights Reserved. 6 * COPYING RESTRICTIONS APPLY, see COPYRIGHT file 7 */ 8 9 10 #ifndef LDAP_EXCEPTION_H 11 #define LDAP_EXCEPTION_H 12 13 #include <iostream> 14 #include <string> 15 #include <stdexcept> 16 17 #include <LDAPUrlList.h> 18 19 class LDAPAsynConnection; 20 21 /** 22 * This class is only thrown as an Exception and used to signalize error 23 * conditions during LDAP-operations 24 */ 25 class LDAPException : public std::runtime_error 26 { 27 28 public : 29 /** 30 * Constructs a LDAPException-object from the parameters 31 * @param res_code A valid LDAP result code. 32 * @param err_string An addional error message for the error 33 * that happend (optional) 34 */ 35 LDAPException(int res_code, 36 const std::string& err_string=std::string()) throw(); 37 38 /** 39 * Constructs a LDAPException-object from the error state of a 40 * LDAPAsynConnection-object 41 * @param lc A LDAP-Connection for that an error has happend. The 42 * Constructor tries to read its error state. 43 */ 44 LDAPException(const LDAPAsynConnection *lc) throw(); 45 46 /** 47 * Destructor 48 */ 49 virtual ~LDAPException() throw(); 50 51 /** 52 * @return The Result code of the object 53 */ 54 int getResultCode() const throw(); 55 56 /** 57 * @return The error message that is corresponding to the result 58 * code . 59 */ 60 const std::string& getResultMsg() const throw(); 61 62 /** 63 * @return The addional error message of the error (if it was set) 64 */ 65 const std::string& getServerMsg() const throw(); 66 67 68 virtual const char* what() const throw(); 69 70 /** 71 * This method can be used to dump the data of a LDAPResult-Object. 72 * It is only useful for debugging purposes at the moment 73 */ 74 friend std::ostream& operator << (std::ostream &s, LDAPException e) throw(); 75 76 private : 77 int m_res_code; 78 std::string m_res_string; 79 std::string m_err_string; 80 }; 81 82 /** 83 * This class extends LDAPException and is used to signalize Referrals 84 * there were received during synchronous LDAP-operations 85 */ 86 class LDAPReferralException : public LDAPException 87 { 88 89 public : 90 /** 91 * Creates an object that is initialized with a list of URLs 92 */ 93 LDAPReferralException(const LDAPUrlList& urls) throw(); 94 95 /** 96 * Destructor 97 */ 98 ~LDAPReferralException() throw(); 99 100 /** 101 * @return The List of URLs of the Referral/Search Reference 102 */ 103 const LDAPUrlList& getUrls() throw(); 104 105 private : 106 LDAPUrlList m_urlList; 107 }; 108 109 #endif //LDAP_EXCEPTION_H 110