testconfigvalues.cpp
来自「MySQL数据库开发源码 值得一看哦」· C++ 代码 · 共 123 行
CPP
123 行
#include <ConfigValues.hpp>#include <NdbOut.hpp>#include <stdlib.h>#include <string.h>#define CF_NODES 1#define CF_LOG_PAGES 2#define CF_MEM_PAGES 3#define CF_START_TO 4#define CF_STOP_TO 5void print(Uint32 i, ConfigValues::ConstIterator & cf){ ndbout_c("---"); for(Uint32 j = 2; j<=7; j++){ switch(cf.getTypeOf(j)){ case ConfigValues::IntType: ndbout_c("Node %d : CFG(%d) : %d", i, j, cf.get(j, 999)); break; case ConfigValues::Int64Type: ndbout_c("Node %d : CFG(%d) : %lld (64)", i, j, cf.get64(j, 999)); break; case ConfigValues::StringType: ndbout_c("Node %d : CFG(%d) : %s", i, j, cf.get(j, "<NOT FOUND>")); break; default: ndbout_c("Node %d : CFG(%d) : TYPE: %d", i, j, cf.getTypeOf(j)); } }}void print(Uint32 i, ConfigValues & _cf){ ConfigValues::ConstIterator cf(_cf); print(i, cf);}voidprint(ConfigValues & _cf){ ConfigValues::ConstIterator cf(_cf); Uint32 i = 0; while(cf.openSection(CF_NODES, i)){ print(i, cf); cf.closeSection(); i++; }}inlinevoidrequire(bool b){ if(!b) abort();}intmain(void){ { ConfigValuesFactory cvf(10, 20); cvf.openSection(1, 0); cvf.put(2, 12); cvf.put64(3, 13); cvf.put(4, 14); cvf.put64(5, 15); cvf.put(6, "Keso"); cvf.put(7, "Kent"); cvf.closeSection(); cvf.openSection(1, 1); cvf.put(2, 22); cvf.put64(3, 23); cvf.put(4, 24); cvf.put64(5, 25); cvf.put(6, "Kalle"); cvf.put(7, "Anka"); cvf.closeSection(); ndbout_c("-- print --"); print(* cvf.m_cfg); cvf.shrink(); ndbout_c("shrink\n-- print --"); print(* cvf.m_cfg); cvf.expand(10, 10); ndbout_c("expand\n-- print --"); print(* cvf.m_cfg); ndbout_c("packed size: %d", cvf.m_cfg->getPackedSize()); ConfigValues::ConstIterator iter(* cvf.m_cfg); iter.openSection(CF_NODES, 0); ConfigValues * cfg2 = ConfigValuesFactory::extractCurrentSection(iter); print(99, * cfg2); cvf.shrink(); ndbout_c("packed size: %d", cfg2->getPackedSize()); UtilBuffer buf; Uint32 l1 = cvf.m_cfg->pack(buf); Uint32 l2 = cvf.m_cfg->getPackedSize(); require(l1 == l2); ConfigValuesFactory cvf2; require(cvf2.unpack(buf)); UtilBuffer buf2; cvf2.shrink(); Uint32 l3 = cvf2.m_cfg->pack(buf2); require(l1 == l3); ndbout_c("unpack\n-- print --"); print(* cvf2.m_cfg); cfg2->~ConfigValues();; cvf.m_cfg->~ConfigValues(); free(cfg2); free(cvf.m_cfg); } return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?