mgmapi_configuration.cpp
来自「MySQL源码文件5.X系列, 可自已编译到服务器」· C++ 代码 · 共 173 行
CPP
173 行
/* Copyright (C) 2004-2005 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; version 2 of the License. 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */#include <ndb_types.h>#include <mgmapi.h>#include "mgmapi_configuration.hpp"ndb_mgm_configuration_iterator::ndb_mgm_configuration_iterator(const ndb_mgm_configuration & conf, unsigned type_of_section) : m_config(conf.m_config){ m_sectionNo = ~0; m_typeOfSection = type_of_section; first();}ndb_mgm_configuration_iterator::~ndb_mgm_configuration_iterator(){ reset();}void ndb_mgm_configuration_iterator::reset(){ if(m_sectionNo != (Uint32)~0){ m_config.closeSection(); }}intndb_mgm_configuration_iterator::enter(){ bool ok = m_config.openSection(m_typeOfSection, m_sectionNo); if(ok){ return 0; } reset(); m_sectionNo = ~0; return -1;}intndb_mgm_configuration_iterator::first(){ reset(); m_sectionNo = 0; return enter();}intndb_mgm_configuration_iterator::next(){ reset(); m_sectionNo++; return enter();}intndb_mgm_configuration_iterator::valid() const { return m_sectionNo != (Uint32)~0;}intndb_mgm_configuration_iterator::find(int param, unsigned search){ unsigned val = search + 1; while(get(param, &val) == 0 && val != search){ if(next() != 0) break; } if(val == search) return 0; return -1;}intndb_mgm_configuration_iterator::get(int param, unsigned * value) const { return m_config.get(param, value) != true;}int ndb_mgm_configuration_iterator::get(int param, unsigned long long * value) const{ return m_config.get(param, value) != true;}int ndb_mgm_configuration_iterator::get(int param, const char ** value) const { return m_config.get(param, value) != true;}/** * Published C interface */extern "C"ndb_mgm_configuration_iterator* ndb_mgm_create_configuration_iterator(ndb_mgm_configuration * conf, unsigned type_of_section){ ndb_mgm_configuration_iterator* iter = (ndb_mgm_configuration_iterator*) malloc(sizeof(ndb_mgm_configuration_iterator)); if(iter == 0) return 0; return new(iter) ndb_mgm_configuration_iterator(* conf, type_of_section);}extern "C"void ndb_mgm_destroy_iterator(ndb_mgm_configuration_iterator* iter){ if(iter != 0){ iter->~ndb_mgm_configuration_iterator(); free(iter); }}extern "C"int ndb_mgm_first(ndb_mgm_configuration_iterator* iter){ return iter->first();}extern "C"int ndb_mgm_next(ndb_mgm_configuration_iterator* iter){ return iter->next();}extern "C"int ndb_mgm_valid(const ndb_mgm_configuration_iterator* iter){ return iter->valid();}extern "C"int ndb_mgm_get_int_parameter(const ndb_mgm_configuration_iterator* iter, int param, unsigned * value){ return iter->get(param, value);}extern "C"int ndb_mgm_get_int64_parameter(const ndb_mgm_configuration_iterator* iter, int param, Uint64 * value){ return iter->get(param, value);}extern "C"int ndb_mgm_get_string_parameter(const ndb_mgm_configuration_iterator* iter, int param, const char ** value){ return iter->get(param, value);}extern "C"int ndb_mgm_find(ndb_mgm_configuration_iterator* iter, int param, unsigned search){ return iter->find(param, search);}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?