NdbUtil.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:2k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. /************************************************************************************************
  14. Name: NdbUtil.H
  15. Include:
  16. Link:
  17. Author: UABRONM Mikael Ronstr鰉 UAB/B/SD
  18. Date: 991029
  19. Version: 0.4
  20. Description: Utility classes for NDB API
  21. Documentation:
  22. Adjust: 991029  UABRONM   First version.
  23. Comment:
  24. ************************************************************************************************/
  25. #ifndef NdbUtil_H
  26. #define NdbUtil_H
  27. #include <ndb_global.h>
  28. class Ndb;
  29. class NdbApiSignal;
  30. class NdbOperation;
  31. template<class T>
  32. struct Free_list_element 
  33. {
  34.   Free_list_element() { theNext = 0;}
  35.   void next(T* obj) { theNext = obj;}
  36.   T* next() { return theNext;}
  37.   T* theNext;
  38. };
  39. class NdbLabel : public Free_list_element<NdbLabel>
  40. {
  41. friend class NdbOperation;
  42. friend class Ndb;
  43. public:
  44.   NdbLabel(Ndb*);
  45.   ~NdbLabel();
  46. private:
  47.   Uint32   theSubroutine[16];
  48.   Uint32   theLabelAddress[16];
  49.   Uint32   theLabelNo[16];
  50. };
  51. class NdbSubroutine : public Free_list_element<NdbSubroutine>
  52. {
  53. friend class NdbOperation;
  54. friend class Ndb;
  55. public:
  56.   NdbSubroutine(Ndb*);
  57.   ~NdbSubroutine();
  58.   Uint32   theSubroutineAddress[16];
  59. };
  60. class NdbBranch : public Free_list_element<NdbBranch>
  61. {
  62. friend class NdbOperation;
  63. friend class Ndb;
  64. public:
  65.   NdbBranch(Ndb*);
  66.   ~NdbBranch();
  67.   NdbApiSignal* theSignal;
  68.   Uint32       theSignalAddress;
  69.   Uint32       theBranchAddress;
  70.   Uint32 theBranchLabel;
  71.   Uint32 theSubroutine;
  72. };
  73. class NdbCall : public Free_list_element<NdbCall>
  74. {
  75. friend class NdbOperation;
  76. friend class Ndb;
  77. public:
  78.   NdbCall(Ndb*);
  79.   ~NdbCall();
  80.   NdbApiSignal* theSignal;
  81.   Uint32       theSignalAddress;
  82.   Uint32 theSubroutine;
  83. };
  84. #endif