MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NdbcntrInit.cpp
1 /*
2  Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
3 
4  This program is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; version 2 of the License.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17 
18 
19 
20 #define NDBCNTR_C
21 #include "Ndbcntr.hpp"
22 #include <ndb_limits.h>
23 
24 #define DEBUG(x) { ndbout << "Ndbcntr::" << x << endl; }
25 
26 
27 void Ndbcntr::initData()
28 {
29  c_start.reset();
30  cmasterNodeId = 0;
31  cnoStartNodes = 0;
32  cnoWaitrep = 0;
33  // Records with constant sizes
34  ndbBlocksRec = new NdbBlocksRec[ZSIZE_NDB_BLOCKS_REC];
35  // schema trans
36  c_schemaTransId = 0;
37  c_schemaTransKey = 0;
38 }//Ndbcntr::initData()
39 
40 void Ndbcntr::initRecords()
41 {
42  // Records with dynamic sizes
43 }//Ndbcntr::initRecords()
44 
45 Ndbcntr::Ndbcntr(Block_context& ctx):
46  SimulatedBlock(NDBCNTR, ctx),
47  cnoWaitrep6(0),
48  cnoWaitrep7(0),
49  c_stopRec(* this),
50  c_missra(* this)
51 {
52 
53  BLOCK_CONSTRUCTOR(Ndbcntr);
54 
55  // Transit signals
56  addRecSignal(GSN_CONTINUEB, &Ndbcntr::execCONTINUEB);
57  addRecSignal(GSN_READ_NODESCONF, &Ndbcntr::execREAD_NODESCONF);
58  addRecSignal(GSN_READ_NODESREF, &Ndbcntr::execREAD_NODESREF);
59  addRecSignal(GSN_CM_ADD_REP, &Ndbcntr::execCM_ADD_REP);
60  addRecSignal(GSN_CNTR_START_REQ, &Ndbcntr::execCNTR_START_REQ);
61  addRecSignal(GSN_CNTR_START_REF, &Ndbcntr::execCNTR_START_REF);
62  addRecSignal(GSN_CNTR_START_CONF, &Ndbcntr::execCNTR_START_CONF);
63  addRecSignal(GSN_CNTR_WAITREP, &Ndbcntr::execCNTR_WAITREP);
64  addRecSignal(GSN_CNTR_START_REP, &Ndbcntr::execCNTR_START_REP);
65  addRecSignal(GSN_API_START_REP, &Ndbcntr::execAPI_START_REP, true);
66  addRecSignal(GSN_NODE_FAILREP, &Ndbcntr::execNODE_FAILREP);
67  addRecSignal(GSN_SYSTEM_ERROR , &Ndbcntr::execSYSTEM_ERROR);
68  addRecSignal(GSN_START_PERMREP, &Ndbcntr::execSTART_PERMREP);
69 
70  // Received signals
71  addRecSignal(GSN_DUMP_STATE_ORD, &Ndbcntr::execDUMP_STATE_ORD);
72  addRecSignal(GSN_READ_CONFIG_REQ, &Ndbcntr::execREAD_CONFIG_REQ);
73  addRecSignal(GSN_STTOR, &Ndbcntr::execSTTOR);
74  addRecSignal(GSN_TCSEIZECONF, &Ndbcntr::execTCSEIZECONF);
75  addRecSignal(GSN_TCSEIZEREF, &Ndbcntr::execTCSEIZEREF);
76  addRecSignal(GSN_TCRELEASECONF, &Ndbcntr::execTCRELEASECONF);
77  addRecSignal(GSN_TCRELEASEREF, &Ndbcntr::execTCRELEASEREF);
78  addRecSignal(GSN_TCKEYCONF, &Ndbcntr::execTCKEYCONF);
79  addRecSignal(GSN_TCKEYREF, &Ndbcntr::execTCKEYREF);
80  addRecSignal(GSN_TCROLLBACKREP, &Ndbcntr::execTCROLLBACKREP);
81  addRecSignal(GSN_GETGCICONF, &Ndbcntr::execGETGCICONF);
82  addRecSignal(GSN_DIH_RESTARTCONF, &Ndbcntr::execDIH_RESTARTCONF);
83  addRecSignal(GSN_DIH_RESTARTREF, &Ndbcntr::execDIH_RESTARTREF);
84  addRecSignal(GSN_SCHEMA_TRANS_BEGIN_CONF, &Ndbcntr::execSCHEMA_TRANS_BEGIN_CONF);
85  addRecSignal(GSN_SCHEMA_TRANS_BEGIN_REF, &Ndbcntr::execSCHEMA_TRANS_BEGIN_REF);
86  addRecSignal(GSN_SCHEMA_TRANS_END_CONF, &Ndbcntr::execSCHEMA_TRANS_END_CONF);
87  addRecSignal(GSN_SCHEMA_TRANS_END_REF, &Ndbcntr::execSCHEMA_TRANS_END_REF);
88  addRecSignal(GSN_CREATE_TABLE_REF, &Ndbcntr::execCREATE_TABLE_REF);
89  addRecSignal(GSN_CREATE_TABLE_CONF, &Ndbcntr::execCREATE_TABLE_CONF);
90  addRecSignal(GSN_CREATE_HASH_MAP_REF, &Ndbcntr::execCREATE_HASH_MAP_REF);
91  addRecSignal(GSN_CREATE_HASH_MAP_CONF, &Ndbcntr::execCREATE_HASH_MAP_CONF);
92  addRecSignal(GSN_CREATE_FILEGROUP_REF, &Ndbcntr::execCREATE_FILEGROUP_REF);
93  addRecSignal(GSN_CREATE_FILEGROUP_CONF, &Ndbcntr::execCREATE_FILEGROUP_CONF);
94  addRecSignal(GSN_CREATE_FILE_REF, &Ndbcntr::execCREATE_FILE_REF);
95  addRecSignal(GSN_CREATE_FILE_CONF, &Ndbcntr::execCREATE_FILE_CONF);
96  addRecSignal(GSN_NDB_STTORRY, &Ndbcntr::execNDB_STTORRY);
97  addRecSignal(GSN_NDB_STARTCONF, &Ndbcntr::execNDB_STARTCONF);
98  addRecSignal(GSN_READ_NODESREQ, &Ndbcntr::execREAD_NODESREQ);
99  addRecSignal(GSN_NDB_STARTREF, &Ndbcntr::execNDB_STARTREF);
100 
101  addRecSignal(GSN_STOP_PERM_REF, &Ndbcntr::execSTOP_PERM_REF);
102  addRecSignal(GSN_STOP_PERM_CONF, &Ndbcntr::execSTOP_PERM_CONF);
103 
104  addRecSignal(GSN_STOP_ME_REF, &Ndbcntr::execSTOP_ME_REF);
105  addRecSignal(GSN_STOP_ME_CONF, &Ndbcntr::execSTOP_ME_CONF);
106 
107  addRecSignal(GSN_STOP_REQ, &Ndbcntr::execSTOP_REQ);
108  addRecSignal(GSN_STOP_CONF, &Ndbcntr::execSTOP_CONF);
109  addRecSignal(GSN_RESUME_REQ, &Ndbcntr::execRESUME_REQ);
110 
111  addRecSignal(GSN_WAIT_GCP_REF, &Ndbcntr::execWAIT_GCP_REF);
112  addRecSignal(GSN_WAIT_GCP_CONF, &Ndbcntr::execWAIT_GCP_CONF);
113  addRecSignal(GSN_CHANGE_NODE_STATE_CONF,
114  &Ndbcntr::execCHANGE_NODE_STATE_CONF);
115 
116  addRecSignal(GSN_ABORT_ALL_REF, &Ndbcntr::execABORT_ALL_REF);
117  addRecSignal(GSN_ABORT_ALL_CONF, &Ndbcntr::execABORT_ALL_CONF);
118 
119  addRecSignal(GSN_START_ORD, &Ndbcntr::execSTART_ORD);
120  addRecSignal(GSN_STTORRY, &Ndbcntr::execSTTORRY);
121  addRecSignal(GSN_READ_CONFIG_CONF, &Ndbcntr::execREAD_CONFIG_CONF);
122 
123  addRecSignal(GSN_FSREMOVECONF, &Ndbcntr::execFSREMOVECONF);
124 
125  addRecSignal(GSN_START_COPYREF, &Ndbcntr::execSTART_COPYREF);
126  addRecSignal(GSN_START_COPYCONF, &Ndbcntr::execSTART_COPYCONF);
127 
128  addRecSignal(GSN_CREATE_NODEGROUP_IMPL_REQ, &Ndbcntr::execCREATE_NODEGROUP_IMPL_REQ);
129  addRecSignal(GSN_DROP_NODEGROUP_IMPL_REQ, &Ndbcntr::execDROP_NODEGROUP_IMPL_REQ);
130 
131  initData();
132  ctypeOfStart = NodeState::ST_ILLEGAL_TYPE;
133  c_start.m_startTime = NdbTick_CurrentMillisecond();
134  m_cntr_start_conf = false;
135 }//Ndbcntr::Ndbcntr()
136 
137 Ndbcntr::~Ndbcntr()
138 {
139  delete []ndbBlocksRec;
140 
141 }//Ndbcntr::~Ndbcntr()
142 
143 BLOCK_FUNCTIONS(Ndbcntr)