testConfigValues.cpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
源码类别:
MySQL数据库
开发平台:
Visual C++
- #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 5
- void 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);
- }
- void
- print(ConfigValues & _cf){
- ConfigValues::ConstIterator cf(_cf);
- Uint32 i = 0;
- while(cf.openSection(CF_NODES, i)){
- print(i, cf);
- cf.closeSection();
- i++;
- }
- }
- inline
- void
- require(bool b){
- if(!b)
- abort();
- }
- int
- main(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("shrinkn-- print --");
- print(* cvf.m_cfg);
- cvf.expand(10, 10);
- ndbout_c("expandn-- 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("unpackn-- print --");
- print(* cvf2.m_cfg);
- cfg2->~ConfigValues();;
- cvf.m_cfg->~ConfigValues();
- free(cfg2);
- free(cvf.m_cfg);
- }
- return 0;
- }