TcKeyConf.cpp
上传用户: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. #include <signaldata/TcKeyConf.hpp>
  14. #include <BlockNumbers.h>
  15. bool
  16. printTCKEYCONF(FILE * output, const Uint32 * theData, Uint32 len, Uint16 receiverBlockNo){
  17.   
  18.   
  19.   if (receiverBlockNo == API_PACKED) {
  20.     return false;
  21.     Uint32 Theader = * theData++;
  22.     Uint32 TpacketLen = (Theader & 0x1F) + 3;
  23.     Uint32 TrecBlockNo = Theader >> 16;
  24.     
  25.     do {
  26.       fprintf(output, "Block: %d %d %dn", TrecBlockNo, len, TpacketLen);
  27.       printTCKEYCONF(output, theData, TpacketLen, TrecBlockNo);
  28.       assert(len >= (1 + TpacketLen));
  29.       len -= (1 + TpacketLen);
  30.       theData += TpacketLen;
  31.     } while(len);
  32.     return true;
  33.   }
  34.   else {
  35.     const TcKeyConf * const sig = (TcKeyConf *) theData;
  36.     
  37.     Uint32 i = 0;
  38.     Uint32 confInfo = sig->confInfo;
  39.     Uint32 noOfOp = TcKeyConf::getNoOfOperations(confInfo);
  40.     if (noOfOp > 10) noOfOp = 10;
  41.     fprintf(output, " apiConnectPtr: H'%.8x, gci: %u, transId:(H'%.8x, H'%.8x)n",
  42.     sig->apiConnectPtr, sig->gci, sig->transId1, sig->transId2);
  43.     
  44.     fprintf(output, " noOfOperations: %u, commitFlag: %s, markerFlag: %sn", 
  45.     noOfOp,
  46.   (TcKeyConf::getCommitFlag(confInfo) == 0)?"false":"true",
  47.     (TcKeyConf::getMarkerFlag(confInfo) == 0)?"false":"true");
  48.     fprintf(output, "Operations:n");
  49.     for(i = 0; i < noOfOp; i++) {
  50.       if(sig->operations[i].attrInfoLen > TcKeyConf::SimpleReadBit)
  51. fprintf(output,
  52. " apiOperationPtr: H'%.8x, simplereadnode: %un",
  53. sig->operations[i].apiOperationPtr,
  54. sig->operations[i].attrInfoLen & (~TcKeyConf::SimpleReadBit));
  55.       else
  56. fprintf(output,
  57. " apiOperationPtr: H'%.8x, attrInfoLen: %un",
  58. sig->operations[i].apiOperationPtr,
  59. sig->operations[i].attrInfoLen);
  60.     }
  61.   }
  62.   
  63.   return true;
  64. }