MySQL 26.7.0
Source Code Documentation
lob::plist_node_t Class Reference

The node of page list. More...

#include <lob0impl.h>

Public Member Functions

 plist_node_t (mtr_t *mtr)
 Constructor. More...
 
 plist_node_t ()
 Default constructor. More...
 
 plist_node_t (mtr_t *mtr, byte *frame)
 Constructor. More...
 
 plist_node_t (byte *frame, byte *node)
 Constructor. More...
 
 plist_node_t (byte *frame, byte *node, mtr_t *mtr)
 Constructor. More...
 
 plist_node_t (const plist_node_t &other)=default
 Copy constructor. More...
 
plist_node_t & operator= (const plist_node_t &)=default
 
bool is_before (const plist_node_t &node) const
 Check if the current node is before the given node in the page (w.r.t the offset). More...
 
void init ()
 Initialize the current page list node. More...
 
void set_prev (paddr_t addr)
 Set the offset of the previous node. More...
 
void set_prev_node (plist_node_t &prev)
 Set the previous page list node. More...
 
void set_next (paddr_t addr)
 Set the offset of the next node. More...
 
void set_next_node (const plist_node_t &next)
 Set the next page list node. More...
 
paddr_t get_prev () const
 Get the offset of the previous page list node. More...
 
paddr_t get_next () const
 Get the offset of the next page list node. More...
 
plist_node_t get_next_node () const
 Get the next page list node. More...
 
plist_node_t get_prev_node () const
 Get the previous page list node. More...
 
paddr_t addr () const
 Obtain the offset of the page list node within the given page frame. More...
 
byte * ptr () const
 Obtain the memory location of the page list node. More...
 
bool is_null () const
 Check if the given page list node is null. More...
 
std::ostream & print (std::ostream &out) const
 Print the page list node into the given output stream. More...
 
void set_frame (byte *frame)
 Set the page frame to the given value. More...
 
void set_node (byte *node)
 Set the page list node to the given value. More...
 
void set_mtr (mtr_t *mtr)
 Set the mini-transaction context to the given value. More...
 
byte * get_frame () const
 Get the page frame where this page list exists. More...
 
bool is_equal (const plist_node_t &that) const
 

Static Public Attributes

static const uint16_t OFFSET_PREV = 0
 Offset of the previous node. More...
 
static const uint16_t OFFSET_NEXT = 2
 Offset of the next node. More...
 
static const uint8_t SIZE = 4
 The size of a page list node. More...
 

Private Attributes

byte * m_frame
 The page frame where this page list exists. More...
 
byte * m_node
 The plist node is located at this address. More...
 
mtr_t * m_mtr
 The mini-transaction context. More...
 

Detailed Description

The node of page list.

The page list is similar to the file list (flst_node_t) except that it is completely within one page.

Constructor & Destructor Documentation

◆ plist_node_t() [1/6]

lob::plist_node_t::plist_node_t ( mtr_t *  mtr)
inlineexplicit

Constructor.

Parameters
[in]mtrMini-transaction context.

◆ plist_node_t() [2/6]

lob::plist_node_t::plist_node_t ( )
inline

Default constructor.

◆ plist_node_t() [3/6]

lob::plist_node_t::plist_node_t ( mtr_t *  mtr,
byte *  frame 
)
inline

Constructor.

Parameters
[in]mtrMini-transaction context
[in]framethe page frame of this plist.

◆ plist_node_t() [4/6]

lob::plist_node_t::plist_node_t ( byte *  frame,
byte *  node 
)
inline

Constructor.

Parameters
[in]framethe page frame of this plist.
[in]nodethe location of plist node.

◆ plist_node_t() [5/6]

lob::plist_node_t::plist_node_t ( byte *  frame,
byte *  node,
mtr_t *  mtr 
)
inline

Constructor.

Parameters
[in]framePage frame where the page list node is located.
[in]nodeLocation of page list node within page frame.
[in]mtrMini-transaction context.

◆ plist_node_t() [6/6]

lob::plist_node_t::plist_node_t ( const plist_node_t &  other)
default

Copy constructor.

Member Function Documentation

◆ addr()

paddr_t lob::plist_node_t::addr ( ) const
inline

Obtain the offset of the page list node within the given page frame.

Returns
offset from the beginning of the page.

◆ get_frame()

byte * lob::plist_node_t::get_frame ( ) const
inline

Get the page frame where this page list exists.

Returns
the page frame.

◆ get_next()

paddr_t lob::plist_node_t::get_next ( ) const
inline

Get the offset of the next page list node.

Returns
offset of next node of the page list.

◆ get_next_node()

plist_node_t lob::plist_node_t::get_next_node ( ) const
inline

Get the next page list node.

Returns
next node of the page list.

◆ get_prev()

paddr_t lob::plist_node_t::get_prev ( ) const
inline

Get the offset of the previous page list node.

Returns
offset of previous node of the page list.

◆ get_prev_node()

plist_node_t lob::plist_node_t::get_prev_node ( ) const
inline

Get the previous page list node.

Returns
previous node of the page list.

◆ init()

void lob::plist_node_t::init ( void  )
inline

Initialize the current page list node.

The offset of next and previous nodes are set to 0.

◆ is_before()

bool lob::plist_node_t::is_before ( const plist_node_t &  node) const
inline

Check if the current node is before the given node in the page (w.r.t the offset).

Parameters
[in]nodethe other node.
Returns
true if current node is before the given node.
false if current node is after the given node.

◆ is_equal()

bool lob::plist_node_t::is_equal ( const plist_node_t &  that) const
inline

◆ is_null()

bool lob::plist_node_t::is_null ( ) const
inline

Check if the given page list node is null.

Returns
true if null, false otherwise.

◆ operator=()

plist_node_t & lob::plist_node_t::operator= ( const plist_node_t &  )
default

◆ print()

std::ostream & lob::plist_node_t::print ( std::ostream &  out) const
inline

Print the page list node into the given output stream.

Parameters
[in]outthe output stream.
Returns
the output stream.

◆ ptr()

byte * lob::plist_node_t::ptr ( ) const
inline

Obtain the memory location of the page list node.

Returns
the pointer to the page list node.

◆ set_frame()

void lob::plist_node_t::set_frame ( byte *  frame)
inline

Set the page frame to the given value.

Parameters
[in]framethe page frame

◆ set_mtr()

void lob::plist_node_t::set_mtr ( mtr_t *  mtr)
inline

Set the mini-transaction context to the given value.

Parameters
[in]mtrMini-transaction context.

◆ set_next()

void lob::plist_node_t::set_next ( paddr_t  addr)
inline

Set the offset of the next node.

Parameters
[in]addrthe offset of next node.

◆ set_next_node()

void lob::plist_node_t::set_next_node ( const plist_node_t &  next)
inline

Set the next page list node.

Parameters
[in]nextthe next page list node.

◆ set_node()

void lob::plist_node_t::set_node ( byte *  node)
inline

Set the page list node to the given value.

Parameters
[in]nodethe page list node.

◆ set_prev()

void lob::plist_node_t::set_prev ( paddr_t  addr)
inline

Set the offset of the previous node.

Parameters
[in]addrthe offset of previous node.

◆ set_prev_node()

void lob::plist_node_t::set_prev_node ( plist_node_t &  prev)
inline

Set the previous page list node.

Parameters
[in]prevthe previous page list node.

Member Data Documentation

◆ m_frame

byte* lob::plist_node_t::m_frame
private

The page frame where this page list exists.

◆ m_mtr

mtr_t* lob::plist_node_t::m_mtr
private

The mini-transaction context.

◆ m_node

byte* lob::plist_node_t::m_node
private

The plist node is located at this address.

◆ OFFSET_NEXT

const uint16_t lob::plist_node_t::OFFSET_NEXT = 2
static

Offset of the next node.

(2 bytes)

◆ OFFSET_PREV

const uint16_t lob::plist_node_t::OFFSET_PREV = 0
static

Offset of the previous node.

(2 bytes)

◆ SIZE

const uint8_t lob::plist_node_t::SIZE = 4
static

The size of a page list node.


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