BadgerDB
 All Classes Namespaces Functions Variables Typedefs Friends
Public Member Functions | Protected Attributes | Friends
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

List of all members.

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)

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.

    : 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());
}

Member Function Documentation

virtual const std::string& badgerdb::BadgerDbException::message ( ) const [inline, virtual, inherited]

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.

{ return message_; }

Returns the page number of the page that caused this exception.

Definition at line 38 of file insufficient_space_exception.h.

{ return page_number_; }

Returns the space available in bytes when this exception was thrown.

Definition at line 48 of file insufficient_space_exception.h.

{ return space_available_; }

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.

Returns:
Description of the exception.

Definition at line 45 of file badgerdb_exception.h.

{ return message_.c_str(); }

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const BadgerDbException exception 
) [friend, inherited]

Formats this exception for printing on the given stream.

Parameters:
outStream to print exception to.
exceptionException to print.
Returns:
Stream with exception printed.

Definition at line 54 of file badgerdb_exception.h.

                                                                      {
    out << exception.message();
    return out;
  }

Member Data Documentation

std::string badgerdb::BadgerDbException::message_ [protected, inherited]

Message describing the problem that caused this exception.

Definition at line 64 of file badgerdb_exception.h.

Page number of the page that caused this exception.

Definition at line 54 of file insufficient_space_exception.h.

Space available when this exception was thrown.

Definition at line 64 of file insufficient_space_exception.h.

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:
 All Classes Namespaces Functions Variables Typedefs Friends