MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
diskpage.cpp
1 /*
2  Copyright (C) 2005-2007 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 #include <signaldata/SignalData.hpp>
20 #include "diskpage.hpp"
21 #include <NdbOut.hpp>
22 #include <version.h>
23 #include <time.h>
24 
25 void
26 File_formats::Zero_page_header::init(File_type ft,
27  Uint32 node_id,
28  Uint32 version,
29  Uint32 now)
30 {
31  memcpy(m_magic, "NDBDISK", 8);
32  m_byte_order = 0x12345678;
33  m_page_size = File_formats::NDB_PAGE_SIZE;
34  m_ndb_version = version;
35  m_node_id = node_id;
36  m_file_type = ft;
37  m_time = now;
38 }
39 
40 int
41 File_formats::Zero_page_header::validate(File_type ft,
42  Uint32 node_id,
43  Uint32 version,
44  Uint32 now)
45 {
46  return 0; // TODO Check header
47 }
48 
49 NdbOut&
50 operator<<(NdbOut& out, const File_formats::Zero_page_header& obj)
51 {
52  char buf[256];
53  out << "page size: " << obj.m_page_size << endl;
54  out << "ndb version: " << obj.m_ndb_version << ", " <<
55  ndbGetVersionString(obj.m_ndb_version, 0, 0, buf, sizeof(buf)) << endl;
56  out << "ndb node id: " << obj.m_node_id << endl;
57  out << "file type: " << obj.m_file_type << endl;
58  out << "time: " << obj.m_time << ", "
59  << ctime((time_t*)&obj.m_time)<< endl;
60  return out;
61 }
62 
63 NdbOut&
64 operator<<(NdbOut& out, const File_formats::Datafile::Zero_page& obj)
65 {
66  out << obj.m_page_header << endl;
67  out << "m_file_no: " << obj.m_file_no << endl;
68  out << "m_tablespace_id: " << obj.m_tablespace_id << endl;
69  out << "m_tablespace_version: " << obj.m_tablespace_version << endl;
70  out << "m_data_pages: " << obj.m_data_pages << endl;
71  out << "m_extent_pages: " << obj.m_extent_pages << endl;
72  out << "m_extent_size: " << obj.m_extent_size << endl;
73  out << "m_extent_count: " << obj.m_extent_count << endl;
74  out << "m_extent_headers_per_page: " << obj.m_extent_headers_per_page << endl;
75  out << "m_extent_header_words: " << obj.m_extent_header_words << endl;
76  out << "m_extent_header_bits_per_page: " << obj.m_extent_header_bits_per_page << endl;
77 
78  return out;
79 }
80 
81 NdbOut&
82 operator<<(NdbOut& out, const File_formats::Undofile::Zero_page& obj)
83 {
84  out << obj.m_page_header << endl;
85  out << "m_file_id: " << obj.m_file_id << endl;
86  out << "m_logfile_group_id: " << obj.m_logfile_group_id << endl;
87  out << "m_logfile_group_version: " << obj.m_logfile_group_version << endl;
88  out << "m_undo_pages: " << obj.m_undo_pages << endl;
89 
90  return out;
91 }
92