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 + -
显示快捷键?