polardbxengine/storage/innobase/include/read0read.h

132 lines
4.3 KiB
C

///*****************************************************************************
//
//Copyright (c) 1997, 2018, Oracle and/or its affiliates. All Rights Reserved.
//
//This program is free software; you can redistribute it and/or modify it under
//the terms of the GNU General Public License, version 2.0, as published by the
//Free Software Foundation.
//
//This program is also distributed with certain software (including but not
//limited to OpenSSL) that is licensed under separate terms, as designated in a
//particular file or component or in included license documentation. The authors
//of MySQL hereby grant you an additional permission to link the program and
//your derivative works with the separately licensed software that they have
//included with MySQL.
//
//This program is distributed in the hope that it will be useful, but WITHOUT
//ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
//FOR A PARTICULAR PURPOSE. See the GNU General Public License, version 2.0,
//for more details.
//
//You should have received a copy of the GNU General Public License along with
//this program; if not, write to the Free Software Foundation, Inc.,
//51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
//
//*****************************************************************************/
//
///** @file include/read0read.h
// Cursor read
//
// Created 2/16/1997 Heikki Tuuri
// *******************************************************/
//
//#ifndef read0read_h
//#define read0read_h
//
//#include <stddef.h>
//#include <algorithm>
//
//#include "read0types.h"
//#include "univ.i"
//
///** The MVCC read view manager */
//class MVCC {
// public:
// /** Constructor
// @param size Number of views to pre-allocate */
// explicit MVCC(ulint size);
//
// /** Destructor.
// Free all the views in the m_free list */
// ~MVCC();
//
// /**
// Allocate and create a view.
// @param view view owned by this class created for the
// caller. Must be freed by calling close()
// @param trx transaction creating the view */
// void view_open(ReadView *&view, trx_t *trx);
//
// /**
// Close a view created by the above function.
// @param view view allocated by trx_open.
// @param own_mutex true if caller owns trx_sys_t::mutex */
// void view_close(ReadView *&view, bool own_mutex);
//
// /**
// Release a view that is inactive but not closed. Caller must own
// the trx_sys_t::mutex.
// @param view View to release */
// void view_release(ReadView *&view);
//
// /** Clones the oldest view and stores it in view. No need to
// call view_close(). The caller owns the view that is passed in.
// It will also move the closed views from the m_views list to the
// m_free list. This function is called by Purge to create it view.
// @param view Preallocated view, owned by the caller */
// void clone_oldest_view(ReadView *view);
//
// /**
// @return the number of active views */
// ulint size() const;
//
// /**
// @return true if the view is active and valid */
// static bool is_view_active(ReadView *view) {
// ut_a(view != reinterpret_cast<ReadView *>(0x1));
//
// return (view != NULL && !(intptr_t(view) & 0x1));
// }
//
// /**
// Set the view creator transaction id. Note: This shouldbe set only
// for views created by RW transactions. */
// static void set_view_creator_trx_id(ReadView *view, trx_id_t id);
//
// private:
// /**
// Validates a read view list. */
// bool validate() const;
//
// /**
// Find a free view from the active list, if none found then allocate
// a new view. This function will also attempt to move delete marked
// views from the active list to the freed list.
// @return a view to use */
// inline ReadView *get_view();
//
// /**
// Get the oldest view in the system. It will also move the delete
// marked read views from the views list to the freed list.
// @return oldest view if found or NULL */
// inline ReadView *get_oldest_view() const;
// ReadView *get_view_created_by_trx_id(trx_id_t trx_id) const;
//
// private:
// // Prevent copying
// MVCC(const MVCC &);
// MVCC &operator=(const MVCC &);
//
// private:
// typedef UT_LIST_BASE_NODE_T(ReadView) view_list_t;
//
// /** Free views ready for reuse. */
// view_list_t m_free;
//
// /** Active and closed views, the closed views will have the
// creator trx id set to TRX_ID_MAX */
// view_list_t m_views;
//};
//
//#endif /* read0read_h */