An exception that is thrown when a record is attempted to be inserted into a page that doesn't have space for it. More...
#include <insufficient_space_exception.h>
Public Member Functions | |
InsufficientSpaceException (const PageId page_num, const std::size_t requested, const std::size_t available) | |
PageId | page_number () const |
std::size_t | space_requested () const |
std::size_t | space_available () const |
virtual const std::string & | message () const |
virtual const char * | what () const throw () |
Protected Attributes | |
const PageId | page_number_ |
const std::size_t | space_requested_ |
const std::size_t | space_available_ |
std::string | message_ |
Friends | |
std::ostream & | operator<< (std::ostream &out, const BadgerDbException &exception) |
An exception that is thrown when a record is attempted to be inserted into a page that doesn't have space for it.
Definition at line 21 of file insufficient_space_exception.h.
badgerdb::InsufficientSpaceException::InsufficientSpaceException | ( | const PageId | page_num, |
const std::size_t | requested, | ||
const std::size_t | available | ||
) |
Constructs an insufficient space exception when more space is requested in a page than is currently available.
page_num | Number of page which doesn't have enough space. |
requested | Space requested in bytes. |
available | Space available in bytes. |
Definition at line 15 of file insufficient_space_exception.cpp.
: BadgerDbException(""), page_number_(page_num), space_requested_(requested), space_available_(available) { std::stringstream ss; ss << "Insufficient space in page " << page_number_ << "to hold record. Requested: " << space_requested_ << " bytes." << " Available: " << space_available_ << " bytes."; message_.assign(ss.str()); }
virtual const std::string& badgerdb::BadgerDbException::message | ( | ) | const [inline, virtual, inherited] |
Returns a message describing the problem that caused this exception.
Definition at line 38 of file badgerdb_exception.h.
{ return message_; }
PageId badgerdb::InsufficientSpaceException::page_number | ( | ) | const [inline] |
Returns the page number of the page that caused this exception.
Definition at line 38 of file insufficient_space_exception.h.
{ return page_number_; }
std::size_t badgerdb::InsufficientSpaceException::space_available | ( | ) | const [inline] |
Returns the space available in bytes when this exception was thrown.
Definition at line 48 of file insufficient_space_exception.h.
{ return space_available_; }
std::size_t badgerdb::InsufficientSpaceException::space_requested | ( | ) | const [inline] |
Returns the space requested in bytes when this exception was thrown.
Definition at line 43 of file insufficient_space_exception.h.
{ return space_requested_; }
virtual const char* badgerdb::BadgerDbException::what | ( | ) | const throw () [inline, virtual, inherited] |
Returns a description of the exception.
Definition at line 45 of file badgerdb_exception.h.
{ return message_.c_str(); }
std::ostream& operator<< | ( | std::ostream & | out, |
const BadgerDbException & | exception | ||
) | [friend, inherited] |
Formats this exception for printing on the given stream.
out | Stream to print exception to. |
exception | Exception to print. |
Definition at line 54 of file badgerdb_exception.h.
{
out << exception.message();
return out;
}
std::string badgerdb::BadgerDbException::message_ [protected, inherited] |
Message describing the problem that caused this exception.
Definition at line 64 of file badgerdb_exception.h.
const PageId badgerdb::InsufficientSpaceException::page_number_ [protected] |
Page number of the page that caused this exception.
Definition at line 54 of file insufficient_space_exception.h.
const std::size_t badgerdb::InsufficientSpaceException::space_available_ [protected] |
Space available when this exception was thrown.
Definition at line 64 of file insufficient_space_exception.h.
const std::size_t badgerdb::InsufficientSpaceException::space_requested_ [protected] |
Space requested when this exception was thrown.
Definition at line 59 of file insufficient_space_exception.h.