testproperties.cpp

来自「MySQL数据库开发源码 值得一看哦」· C++ 代码 · 共 196 行

CPP
196
字号
/* Copyright (C) 2003 MySQL AB   This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 2 of the License, or   (at your option) any later version.   This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.   You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */#include <ndb_global.h>#include "Properties.hpp"#include <NdbOut.hpp>#include "uucode.h"boolwriteToFile(const Properties & p, const char * fname, bool uu = true){  Uint32 sz = p.getPackedSize();  char * buffer = (char*)malloc(sz);    FILE * f = fopen(fname, "wb");  bool res = p.pack((Uint32*)buffer);  if(res != true){    ndbout << "Error packing" << endl;    ndbout << "p.getPropertiesErrno() = " << p.getPropertiesErrno() << endl;    ndbout << "p.getOSErrno()         = " << p.getOSErrno() << endl;  }  if(uu)    uuencode(buffer, sz, f);  else {    fwrite(buffer, 1, sz, f);  }        fclose(f);  free(buffer);  return res;}boolreadFromFile(Properties & p, const char *fname, bool uu = true){  Uint32 sz = 30000;  char * buffer = (char*)malloc(sz);  FILE * f = fopen(fname, "rb");  if(uu)    uudecode(f, buffer, sz);  else     fread(buffer, 1, sz, f);  fclose(f);  bool res = p.unpack((Uint32*)buffer, sz);  if(res != true){    ndbout << "Error unpacking" << endl;    ndbout << "p.getPropertiesErrno() = " << p.getPropertiesErrno() << endl;    ndbout << "p.getOSErrno()         = " << p.getOSErrno() << endl;  }  free(buffer);  return res;}void putALot(Properties & tmp){  int i = 123;  tmp.put("LockPagesInMainMemory", i++);  tmp.put("SleepWhenIdle", i++);  tmp.put("NoOfSignalsToExecuteBetweenCommunicationInterfacePoll", i++);  tmp.put("TimeBetweenWatchDogCheck", i++);  tmp.put("StopOnError", i++);    tmp.put("MaxNoOfConcurrentOperations", i++);  tmp.put("MaxNoOfConcurrentTransactions", i++);  tmp.put("MemorySpaceIndexes", i++);  tmp.put("MemorySpaceTuples", i++);  tmp.put("MemoryDiskPages", i++);  tmp.put("NoOfFreeDiskClusters", i++);  tmp.put("NoOfDiskClusters", i++);    tmp.put("TimeToWaitAlive", i++);  tmp.put("HeartbeatIntervalDbDb", i++);  tmp.put("HeartbeatIntervalDbApi", i++);  tmp.put("TimeBetweenInactiveTransactionAbortCheck", i++);    tmp.put("TimeBetweenLocalCheckpoints", i++);  tmp.put("TimeBetweenGlobalCheckpoints", i++);  tmp.put("NoOfFragmentLogFiles", i++);  tmp.put("NoOfConcurrentCheckpointsDuringRestart", i++);  tmp.put("TransactionInactiveTimeBeforeAbort", i++);  tmp.put("NoOfConcurrentProcessesHandleTakeover", i++);    tmp.put("NoOfConcurrentCheckpointsAfterRestart", i++);    tmp.put("NoOfDiskPagesToDiskDuringRestartTUP", i++);  tmp.put("NoOfDiskPagesToDiskAfterRestartTUP", i++);  tmp.put("NoOfDiskPagesToDiskDuringRestartACC", i++);  tmp.put("NoOfDiskPagesToDiskAfterRestartACC", i++);    tmp.put("NoOfDiskClustersPerDiskFile", i++);  tmp.put("NoOfDiskFiles", i++);  // Always found  tmp.put("NoOfReplicas",      33);  tmp.put("MaxNoOfAttributes", 34);  tmp.put("MaxNoOfTables",     35);}intmain(void){  Properties p;  p.put("Kalle", 1);  p.put("Ank1", "anka");  p.put("Ank2", "anka");  p.put("Ank3", "anka");  p.put("Ank4", "anka");  putALot(p);  Properties tmp;  tmp.put("Type", "TCP");  tmp.put("OwnNodeId", 1);  tmp.put("RemoteNodeId", 2);  tmp.put("OwnHostName", "local");  tmp.put("RemoteHostName", "remote");    tmp.put("SendSignalId", 1);  tmp.put("Compression", (Uint32)false);  tmp.put("Checksum", 1);    tmp.put64("SendBufferSize", 2000);  tmp.put64("MaxReceiveSize", 1000);    tmp.put("PortNumber", 1233);  putALot(tmp);  p.put("Connection", 1, &tmp);  p.put("NoOfConnections", 2);  p.put("NoOfConnection2", 2);  p.put("kalle", 3);  p.put("anka", "kalle");    Properties p2;  p2.put("kalle", "anka");  p.put("prop", &p2);  p.put("Connection", 2, &tmp);  p.put("Connection", 3, &tmp);  p.put("Connection", 4, &tmp);  /*  */    Uint32 a = 99;  const char * b;  const Properties * p3;  Properties * p4;    bool bb = p.get("kalle", &a);  bool cc = p.get("anka", &b);  bool dd = p.get("prop", &p3);  if(p.getCopy("prop", &p4))    delete p4;    p2.put("p2", &p2);    p.put("prop2", &p2);  /* */    p.print(stdout, "testing 1: ");    writeToFile(p, "A_1");  writeToFile(p, "B_1", false);    Properties r1;  readFromFile(r1, "A_1");  writeToFile(r1, "A_3");    //r1.print(stdout, "testing 2: ");  Properties r2;  readFromFile(r2, "A_1");  writeToFile(r2, "A_4");    Properties r3;  readFromFile(r3, "B_1", false);  writeToFile(r3, "A_5");  r3.print(stdout, "testing 3: ");    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?