mySQL 5.0.11 sources for tomato
[tomato.git] / release / src / router / mysql / storage / ndb / include / kernel / signaldata / NodeStateSignalData.hpp
blob33eafec9249cf777d8daaa88849d8edef6002ee4
1 /* Copyright (c) 2003, 2005 MySQL AB
3 This program is free software; you can redistribute it and/or modify
4 it under the terms of the GNU General Public License as published by
5 the Free Software Foundation; version 2 of the License.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 GNU General Public License for more details.
12 You should have received a copy of the GNU General Public License
13 along with this program; if not, write to the Free Software
14 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */
16 #ifndef NODE_STATE_SIGNAL_DATA_HPP
17 #define NODE_STATE_SIGNAL_DATA_HPP
19 #include <NodeState.hpp>
21 /**
22 * NodeStateRep
24 * Sent so that all blocks will update their NodeState
26 class NodeStateRep {
27 /**
28 * Sender(s)
30 friend class Ndbcntr;
32 /**
33 * Reciver
35 friend class SimulatedBlock;
37 public:
38 STATIC_CONST( SignalLength = NodeState::DataLength );
39 private:
41 NodeState nodeState;
44 /**
45 * ChangeNodeStateReq
47 * Sent by NdbCntr when synchronous NodeState updates are needed
49 class ChangeNodeStateReq {
50 /**
51 * Sender(s)
53 friend class Ndbcntr;
55 /**
56 * Reciver
58 friend class SimulatedBlock;
60 public:
61 STATIC_CONST( SignalLength = 2 + NodeState::DataLength );
62 public:
64 Uint32 senderRef;
65 Uint32 senderData;
66 NodeState nodeState;
69 /**
70 * ChangeNodeStateConf
72 * Sent by SimulatedBlock as a confirmation to ChangeNodeStateReq
74 class ChangeNodeStateConf {
75 /**
76 * Sender(s)
78 friend class SimulatedBlock;
80 /**
81 * Reciver
83 friend class NdbCntr;
85 public:
86 STATIC_CONST( SignalLength = 1 );
87 private:
89 Uint32 senderData;
93 #endif