00001 /***************************************************************************** 00002 00003 Copyright (C) 2007, 2009, Innobase Oy. All Rights Reserved. 00004 00005 This program is free software; you can redistribute it and/or modify it under 00006 the terms of the GNU General Public License as published by the Free Software 00007 Foundation; version 2 of the License. 00008 00009 This program is distributed in the hope that it will be useful, but WITHOUT 00010 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 00011 FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. 00012 00013 You should have received a copy of the GNU General Public License along with 00014 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin 00015 St, Fifth Floor, Boston, MA 02110-1301 USA 00016 00017 *****************************************************************************/ 00018 00019 /**************************************************/ 00026 #pragma once 00027 #ifndef lock0iter_h 00028 #define lock0iter_h 00029 00030 #include "univ.i" 00031 #include "lock0types.h" 00032 00033 typedef struct lock_queue_iterator_struct { 00034 const lock_t* current_lock; 00035 /* In case this is a record lock queue (not table lock queue) 00036 then bit_no is the record number within the heap in which the 00037 record is stored. */ 00038 ulint bit_no; 00039 } lock_queue_iterator_t; 00040 00041 /*******************************************************************/ 00050 UNIV_INTERN 00051 void 00052 lock_queue_iterator_reset( 00053 /*======================*/ 00054 lock_queue_iterator_t* iter, 00055 const lock_t* lock, 00056 ulint bit_no); 00059 /*******************************************************************/ 00065 const lock_t* 00066 lock_queue_iterator_get_prev( 00067 /*=========================*/ 00068 lock_queue_iterator_t* iter); 00070 #endif /* lock0iter_h */