BadgerDB
 All Classes Namespaces Functions Variables Typedefs Friends Pages
Public Member Functions | Protected Attributes | List of all members
badgerdb::InsufficientSpaceException Class Reference

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>

Inheritance diagram for badgerdb::InsufficientSpaceException:
badgerdb::BadgerDbException

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_
 

Detailed Description

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.

Constructor & Destructor Documentation

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.

Parameters
page_numNumber of page which doesn't have enough space.
requestedSpace requested in bytes.
availableSpace available in bytes.

Definition at line 15 of file insufficient_space_exception.cpp.

18  : BadgerDbException(""),
19  page_number_(page_num),
20  space_requested_(requested),
21  space_available_(available) {
22  std::stringstream ss;
23  ss << "Insufficient space in page " << page_number_
24  << "to hold record. Requested: " << space_requested_ << " bytes."
25  << " Available: " << space_available_ << " bytes.";
26  message_.assign(ss.str());
27 }
BadgerDbException(const std::string &msg)

Member Function Documentation

virtual const std::string& badgerdb::BadgerDbException::message ( ) const
inlinevirtualinherited

Returns a message describing the problem that caused this exception.

Returns
Message describing the problem that caused this exception.

Definition at line 38 of file badgerdb_exception.h.

38 { 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.

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.

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.

virtual const char* badgerdb::BadgerDbException::what ( ) const
throw (
)
inlinevirtualinherited

Returns a description of the exception.

Returns
Description of the exception.

Definition at line 45 of file badgerdb_exception.h.

45 { return message_.c_str(); }

Member Data Documentation

std::string badgerdb::BadgerDbException::message_
protectedinherited

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.


The documentation for this class was generated from the following files: