NdbConditionOSE.h
上传用户: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. #ifndef NDB_CONDITIONOSE_H
  14. #define NDB_CONDITIONOSE_H
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. #define NDBCOND_SIGBASE  4000
  19.    
  20. #define NDBCOND_WAIT           (NDBCOND_SIGBASE + 1)  /* !-SIGNO(struct NdbCondWait)-! */  
  21. #define NDBCOND_WAITTIMEOUT           (NDBCOND_SIGBASE + 2)  /* !-SIGNO(struct NdbCondWaitTimeOut)-! */  
  22. #define NDBCOND_SIGNAL    (NDBCOND_SIGBASE + 3)  /* !-SIGNO(struct NdbCondSignal)-! */  
  23. #define NDBCOND_BROADCAST    (NDBCOND_SIGBASE + 4)  /* !-SIGNO(struct NdbCondBroadcast)-! */  
  24. const char *
  25. sigNo2String(SIGSELECT sigNo){
  26.   switch(sigNo){
  27.   case NDBCOND_WAIT:
  28.     return "NDBCOND_WAIT";
  29.     break;
  30.   case NDBCOND_WAITTIMEOUT:
  31.     return "NDBCOND_WAITTIMEOUT";
  32.     break;
  33.   case NDBCOND_SIGNAL:
  34.     return "NDBCOND_SIGNAL";
  35.     break;
  36.   case NDBCOND_BROADCAST:
  37.     return "NDBCOND_BROADCAST";
  38.     break;
  39.   }
  40.   return "UNKNOWN";
  41. }
  42. struct NdbCondWait
  43. {
  44.   SIGSELECT sigNo;
  45.   int status;
  46. };
  47. /**
  48.  * Signal received
  49.  */
  50. #define NDBCOND_SIGNALED 1
  51.   
  52. /**
  53.  * Timeout occured
  54.  */
  55. #define NDBCOND_TIMEOUT 2
  56. struct NdbCondWaitTimeout
  57. {
  58.   SIGSELECT sigNo;
  59.   int timeout;
  60.   int status;
  61. };
  62. struct NdbCondSignal
  63. {
  64.   SIGSELECT sigNo;
  65. };
  66. struct NdbCondBroadcast
  67. {
  68.   SIGSELECT sigNo;
  69. };
  70. union SIGNAL 
  71. {
  72.   SIGSELECT sigNo;
  73.   struct NdbCondWait          condWait;
  74.   struct NdbCondWaitTimeout   condWaitTimeout;
  75.   struct NdbCondSignal        condSignal;
  76.   struct NdbCondBroadcast     condBroadcast;
  77. };
  78. #ifdef __cplusplus
  79. }
  80. #endif
  81. #endif