{}
};
+/// \brief Exception thrown when a \c reset() on a ZoneTableSegment
+/// fails (due to various reasons). When this exception is thrown, there
+/// is still a strong guarantee that the previously existing backing
+/// memory store was not unloaded.
+class ResetFailed : public isc::Exception {
+public:
+ ResetFailed(const char* file, size_t line, const char* what) :
+ isc::Exception(file, line, what)
+ {}
+};
+
+/// \brief Exception thrown when a \c reset() on a ZoneTableSegment
+/// fails (due to various reasons), and it was not able to preserve any
+/// existing backing memory store. When this exception is thrown, there
+/// is a strong guarantee that the previously existing backing memory
+/// store was cleared.
+class ResetFailedAndSegmentCleared : public isc::Exception {
+public:
+ ResetFailedAndSegmentCleared(const char* file, size_t line,
+ const char* what) :
+ isc::Exception(file, line, what)
+ {}
+};
+
+/// \brief Exception thrown when a \c reset() on a ZoneTableSegment
+/// fails because it was determined that the backing memory store is
+/// corrupted. This is typically an unexpected condition that may arise
+/// in rare cases. When this exception is thrown, there is a strong
+/// guarantee that the previously existing backing memory store was
+/// cleared.
+class BrokenSegment : public ResetFailedAndSegmentCleared {
+public:
+ BrokenSegment(const char* file, size_t line, const char* what) :
+ ResetFailedAndSegmentCleared(file, line, what)
+ {}
+};
+
/// \brief Memory-management independent entry point that contains a
/// pointer to a zone table in memory.
///