if (ds_lib_ == NULL) {
// This may cause the filename to appear twice in the actual
// error, but the output of dlerror is implementation-dependent
- isc_throw(DataSourceLibraryError, "dlopen failed for " << name <<
- ": " << dlerror());
+ isc_throw(DataSourceLibraryOpenError,
+ "dlopen failed for " << name << ": " << dlerror());
}
}
namespace datasrc {
-/// \brief Raised if there is an error loading the datasource implementation
+/// \brief Raised if there is an error in the datasource implementation
/// library
class DataSourceLibraryError : public DataSourceError {
public:
DataSourceError(file, line, what) {}
};
+/// \brief Raised if there is an error opening the the datasource
+/// implementation library
+class DataSourceLibraryOpenError : public DataSourceLibraryError {
+public:
+ DataSourceLibraryOpenError(const char* file, size_t line,
+ const char* what) :
+ DataSourceLibraryError(file, line, what) {}
+};
+
/// \brief Raised if there is an error reading a symbol from the datasource
/// implementation library
-class DataSourceLibrarySymbolError : public DataSourceError {
+class DataSourceLibrarySymbolError : public DataSourceLibraryError {
public:
DataSourceLibrarySymbolError(const char* file, size_t line,
const char* what) :
- DataSourceError(file, line, what) {}
+ DataSourceLibraryError(file, line, what) {}
};
typedef DataSourceClient* ds_creator(isc::data::ConstElementPtr config,