00001 #ifndef CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H
00002 #define CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H
00003
00004 #include <cppunit/Portability.h>
00005
00006 #if !defined(CPPUNIT_NO_TESTPLUGIN)
00007 #include <stdexcept>
00008 #include <string>
00009
00010
00011 CPPUNIT_NS_BEGIN
00012
00013
00019 class DynamicLibraryManagerException : public std::runtime_error
00020 {
00021 public:
00022 enum Cause
00023 {
00025 loadingFailed =0,
00027 symbolNotFound
00028 };
00029
00031 DynamicLibraryManagerException( const std::string &libraryName,
00032 const std::string &errorDetail,
00033 Cause cause );
00034
00035 ~DynamicLibraryManagerException() throw()
00036 {
00037 }
00038
00039 Cause getCause() const;
00040
00041 const char *what() const throw();
00042
00043 private:
00044 std::string m_message;
00045 Cause m_cause;
00046 };
00047
00048
00049 CPPUNIT_NS_END
00050
00051 #endif // !defined(CPPUNIT_NO_TESTPLUGIN)
00052
00053 #endif // CPPUNIT_PLUGIN_DYNAMICLIBRARYMANAGEREXCEPTION_H