2
Copyright (C) 2006 MySQL AB
3
All rights reserved. Use is subject to license terms.
5
This program is free software; you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation; version 2 of the License.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
14
You should have received a copy of the GNU General Public License
15
along with this program; if not, write to the Free Software
16
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19
#ifndef NDBD_SUPER_POOL_HPP
20
#define NDBD_SUPER_POOL_HPP
22
#include "SuperPool.hpp"
26
class NdbdSuperPool : public SuperPool
29
NdbdSuperPool(class Ndbd_mem_manager&, Uint32 pageSize, Uint32 pageBits);
32
virtual ~NdbdSuperPool();
34
// Get new page from current area.
35
virtual PtrI getNewPage();
37
// Call first...on all superpools (uses malloc)
40
// Call second...uses mm
43
virtual bool allocMemory() { return allocMem() != 0; }
45
Uint32 allocAreaMemory(AllocArea*, Uint32 pages);
46
AllocArea* allocArea();
47
AllocArea* allocMem();
49
// List of malloc areas.
50
Uint32 m_shift, m_add;
51
class Ndbd_mem_manager & m_mm;
53
AllocArea* m_currArea;
54
AllocArea* m_firstArea;