1
/* -*- mode: c++; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Sun Microsystems, Inc.
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; version 2 of the License.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
20
#ifndef DRIZZLED_LOCK_H
21
#define DRIZZLED_LOCK_H
24
#include "drizzled/thr_lock.h"
25
#include "drizzled/locking/global.h"
42
THR_LOCK_DATA **getLocks()
47
size_t sizeTable() const
52
void resizeTable(size_t arg)
57
size_t sizeLock() const
67
void setLock(size_t arg)
73
void unlock(uint32_t count);
75
DrizzleLock(size_t table_count_arg)
77
table.resize(table_count_arg);
78
lock_count= table_count_arg * 2;
79
locks.resize(lock_count);
85
std::vector<Table *> table;
86
std::vector<THR_LOCK_DATA *> locks;
87
std::vector<THR_LOCK_DATA *> copy_of;
90
/* lockTables() and open_table() flags bits */
91
#define DRIZZLE_LOCK_IGNORE_GLOBAL_READ_LOCK 0x0001
92
#define DRIZZLE_LOCK_IGNORE_FLUSH 0x0002
93
#define DRIZZLE_LOCK_NOTIFY_IF_NEED_REOPEN 0x0004
94
#define DRIZZLE_OPEN_TEMPORARY_ONLY 0x0008
96
} /* namespace drizzled */
98
#endif /* DRIZZLED_LOCK_H */