MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
NdbEventOperation.hpp
1 /*
2  Copyright (C) 2003-2007 MySQL AB, 2009, 2010 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 NdbEventOperation_H
20 #define NdbEventOperation_H
21 
22 class NdbGlobalEventBuffer;
24 
84 public:
88  enum State {
93  };
97  State getState();
101  void mergeEvents(bool flag);
102 
111  int execute();
112 
149  NdbRecAttr *getValue(const char *anAttrName, char *aValue = 0);
153  NdbRecAttr *getPreValue(const char *anAttrName, char *aValue = 0);
154 
160  NdbBlob* getBlobHandle(const char *anAttrName);
161  NdbBlob* getPreBlobHandle(const char *anAttrName);
162 
163  int isOverrun() const;
164 
169  bool isConsistent() const;
170 
180 
184  bool tableNameChanged() const;
185 
189  bool tableFrmChanged() const;
190 
194  bool tableFragmentationChanged() const;
195 
199  bool tableRangeListChanged() const;
200 
206  Uint64 getGCI() const;
207 
213  Uint32 getAnyValue() const;
214 
221  Uint64 getLatestGCI() const;
222 
232  Uint64 getTransId() const;
233 
239  const struct NdbError & getNdbError() const;
240 
241 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
242 
243  const NdbDictionary::Table* getTable() const;
244  const NdbDictionary::Event *getEvent() const;
245  const NdbRecAttr *getFirstPkAttr() const;
246  const NdbRecAttr *getFirstPkPreAttr() const;
247  const NdbRecAttr *getFirstDataAttr() const;
248  const NdbRecAttr *getFirstDataPreAttr() const;
249 
250 // bool validateTable(NdbDictionary::Table &table) const;
251 
252  void setCustomData(void * data);
253  void * getCustomData() const;
254 
255  void clearError();
256  int hasError() const;
257 
258  int getReqNodeId() const;
259  int getNdbdNodeId() const;
260 #endif
261 
262 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
263  /*
264  *
265  */
266  void print();
267 #endif
268 
269 private:
270 #ifndef DOXYGEN_SHOULD_SKIP_INTERNAL
271  friend class NdbEventOperationImpl;
272  friend class NdbEventBuffer;
273 #endif
274  NdbEventOperation(Ndb *theNdb, const char* eventName);
276  class NdbEventOperationImpl &m_impl;
278 
279  NdbEventOperation(const NdbEventOperation&); // Not impl.
280  NdbEventOperation&operator=(const NdbEventOperation&);
281 };
282 
283 typedef void (* NdbEventCallback)(NdbEventOperation*, Ndb*, void*);
284 #endif