MySQL 8.4.2
Source Code Documentation
SQL_I_List< T > Class Template Reference

Simple intrusive linked list. More...

#include <sql_list.h>

Public Member Functions

 SQL_I_List ()
 
 SQL_I_List (const SQL_I_List &tmp)
 
 SQL_I_List (SQL_I_List &&)=default
 
void clear ()
 
void link_in_list (T *element, T **next_ptr)
 
void save_and_clear (SQL_I_List< T > *save)
 
void push_front (SQL_I_List< T > *save)
 
void push_back (SQL_I_List< T > *save)
 
void split_after (uint sz, SQL_I_List< T > *tail)
 
uint size () const
 
SQL_I_Listoperator= (SQL_I_List &)=default
 
SQL_I_Listoperator= (SQL_I_List &&)=default
 

Public Attributes

uint elements
 
T * first
 The first element in the list. More...
 
T ** next
 A reference to the next element in the list. More...
 

Detailed Description

template<typename T>
class SQL_I_List< T >

Simple intrusive linked list.

Remarks
Similar in nature to base_list, but intrusive. It keeps a a pointer to the first element in the list and a indirect reference to the last element.

Constructor & Destructor Documentation

◆ SQL_I_List() [1/3]

template<typename T >
SQL_I_List< T >::SQL_I_List ( )
inline

◆ SQL_I_List() [2/3]

template<typename T >
SQL_I_List< T >::SQL_I_List ( const SQL_I_List< T > &  tmp)
inline

◆ SQL_I_List() [3/3]

template<typename T >
SQL_I_List< T >::SQL_I_List ( SQL_I_List< T > &&  )
default

Member Function Documentation

◆ clear()

template<typename T >
void SQL_I_List< T >::clear ( )
inline

◆ link_in_list()

template<typename T >
void SQL_I_List< T >::link_in_list ( T *  element,
T **  next_ptr 
)
inline

◆ operator=() [1/2]

template<typename T >
SQL_I_List & SQL_I_List< T >::operator= ( SQL_I_List< T > &&  )
default

◆ operator=() [2/2]

template<typename T >
SQL_I_List & SQL_I_List< T >::operator= ( SQL_I_List< T > &  )
default

◆ push_back()

template<typename T >
void SQL_I_List< T >::push_back ( SQL_I_List< T > *  save)
inline

◆ push_front()

template<typename T >
void SQL_I_List< T >::push_front ( SQL_I_List< T > *  save)
inline

◆ save_and_clear()

template<typename T >
void SQL_I_List< T >::save_and_clear ( SQL_I_List< T > *  save)
inline

◆ size()

template<typename T >
uint SQL_I_List< T >::size ( ) const
inline

◆ split_after()

template<typename T >
void SQL_I_List< T >::split_after ( uint  sz,
SQL_I_List< T > *  tail 
)
inline

Member Data Documentation

◆ elements

template<typename T >
uint SQL_I_List< T >::elements

◆ first

template<typename T >
T* SQL_I_List< T >::first

The first element in the list.

If empty, nullptr

◆ next

template<typename T >
T** SQL_I_List< T >::next

A reference to the next element in the list.

If empty points to the head element's 'first' pointer, else to the last element's next pointer.


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