~ubuntu-branches/ubuntu/trusty/mysql-5.6/trusty

« back to all changes in this revision

Viewing changes to storage/ndb/src/kernel/vm/NdbdSuperPool.hpp

  • Committer: Package Import Robot
  • Author(s): James Page
  • Date: 2014-02-12 11:54:27 UTC
  • Revision ID: package-import@ubuntu.com-20140212115427-oq6tfsqxl1wuwehi
Tags: upstream-5.6.15
ImportĀ upstreamĀ versionĀ 5.6.15

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
   Copyright (C) 2006 MySQL AB
 
3
    All rights reserved. Use is subject to license terms.
 
4
 
 
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.
 
8
 
 
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.
 
13
 
 
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
 
17
*/
 
18
 
 
19
#ifndef NDBD_SUPER_POOL_HPP
 
20
#define NDBD_SUPER_POOL_HPP
 
21
 
 
22
#include "SuperPool.hpp"
 
23
 
 
24
struct AllocArea;
 
25
 
 
26
class NdbdSuperPool : public SuperPool
 
27
{
 
28
public:
 
29
  NdbdSuperPool(class Ndbd_mem_manager&, Uint32 pageSize, Uint32 pageBits);
 
30
  
 
31
  // Destructor.
 
32
  virtual ~NdbdSuperPool();
 
33
  
 
34
  // Get new page from current area.
 
35
  virtual PtrI getNewPage();
 
36
 
 
37
  // Call first...on all superpools (uses malloc)
 
38
  bool init_1(); 
 
39
  
 
40
  // Call second...uses mm
 
41
  bool init_2();
 
42
  
 
43
  virtual bool allocMemory() { return allocMem() != 0; }
 
44
private:
 
45
  Uint32 allocAreaMemory(AllocArea*, Uint32 pages);
 
46
  AllocArea* allocArea();
 
47
  AllocArea* allocMem();
 
48
  
 
49
  // List of malloc areas.
 
50
  Uint32 m_shift, m_add;
 
51
  class Ndbd_mem_manager & m_mm;
 
52
 
 
53
  AllocArea* m_currArea;
 
54
  AllocArea* m_firstArea;
 
55
};
 
56
 
 
57
#endif