MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CheckNodeGroups.hpp
1 /*
2  Copyright (C) 2003-2008 MySQL AB, 2008 Sun Microsystems, Inc.
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 CHECKNODEGROUPS_H
20 #define CHECKNODEGROUPS_H
21 
22 #include <string.h>
23 #include <NodeBitmask.hpp>
24 #include "SignalData.hpp"
25 #include "SignalDataPrint.hpp"
26 
36 public:
37  Uint32 blockRef; // sender's node id
38  union {
39  Uint32 requestType; // direct flag, output code
40  Uint32 output;
41  };
42 
43  union {
44  Uint32 nodeId; // nodeId input for GetNodeGroupMembers
45  Uint32 extraNodeGroups; // For GetDefaultFragments
46  };
47  NdbNodeBitmaskPOD mask; /* set of NDB nodes, input for ArbitCheck,
48  * output for GetNodeGroupMembers
49  */
50  Uint32 senderData; // Sender data, kept in return signal
51 
52  enum RequestType {
53  Direct = 0x1,
54  ArbitCheck = 0x2,
55  GetNodeGroup = 0x4,
56  GetNodeGroupMembers = 0x8,
57  GetDefaultFragments = 0x10
58  };
59 
60  enum Output {
61  Lose = 1, // we cannot survive
62  Win = 2, // we and only we can survive
63  Partitioning = 3 // possible network partitioning
64  };
65 
66  STATIC_CONST( SignalLength = 4 + NdbNodeBitmask::Size );
67 };
68 
69 #endif