⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 optionmanager.cc

📁 Amis - A maximum entropy estimator 一个最大熵模型统计工具
💻 CC
字号:
//////////////////////////////////////////////////////////////////////////  Copyright (c) 2000, Yusuke Miyao//  You may distribute under the terms of the Artistic License.////  OptionManager.cc - Option manager//  $Id: OptionManager.cc,v 1.3 2003/05/14 06:01:56 yusuke Exp $////////////////////////////////////////////////////////////////////////#include <amis/OptionManager.h>#include <amis/Option.h>#include <iostream>AMIS_NAMESPACE_BEGINusing namespace std;void OptionManager::initOption( OptionBase* opt ) {  //if ( opt->getName().empty() ) throw IllegalOptionError( "Empty option name" );  if( name_hash.find( opt->getName() ) != name_hash.end() ) {      std::cerr << "Warning: you are about to duplicate property: " << opt->getName() << std::endl;  }  if( long_hash.find( opt->getLongName() ) != long_hash.end() ) {    std::cerr << "Warning: you are about to duplicate long name: " << opt->getLongName() << std::endl;  }  if( short_hash.find( opt->getShortName() ) != short_hash.end() ) {    std::cerr << "Warning: you are about to duplicate short name: " << opt->getShortName() << std::endl;  }  option_vector.push_back( opt );  if ( ! opt->getName().empty() ) name_hash[ opt->getName() ] = opt;  if ( ! opt->getLongName().empty() ) long_hash[ opt->getLongName() ] = opt;  if ( ! opt->getShortName().empty() ) short_hash[ opt->getShortName() ] = opt;}std::string OptionManager::getShortDescription( void ) const {  OStringStream os;  os << "Options:\n";  for ( std::map< std::string, OptionBase* >::const_iterator it = short_hash.begin();        it != short_hash.end();        ++it ) {    os << it->second->getShortDescription() << '\n';  }  return os.str();}std::string OptionManager::getFullDescription( void ) const {  OStringStream os;  os << "List of available options\n";  os << "======================================================================\n";  os << "PROPERTY_NAME <args>, command line longname <args>, shortname <args>\n";  os << " [argument type description]\n";  os << " [description]\n";  os << " [default value description]\n";  os << "======================================================================\n";  for ( std::map< std::string, OptionBase* >::const_iterator it = name_hash.begin();        it != name_hash.end();        ++it ) {    os << it->second->getFullDescription() << '\n';  }  return os.str();}std::string OptionManager::getSpecificationStatus( void ) const {  OStringStream os;  for ( std::map< std::string, OptionBase* >::const_iterator it = name_hash.begin();        it != name_hash.end();        ++it ) {    os << it->second->getSpecificationStatus() << '\n';  }  return os.str();}void OptionManager::setOption( const std::string& name, const std::string& value ) {  std::map< std::string, OptionBase* >::iterator it = name_hash.find( name );  if ( it == name_hash.end() ) {    throw IllegalOptionError( "Unknown option: " + name );  }  it->second->setValueFromString( value );}void OptionManager::setOptionLongName( const std::string& name, const std::string& value ) {  std::map< std::string, OptionBase* >::iterator it = long_hash.find( name );  if ( it == long_hash.end() ) {    throw IllegalOptionError( "Unknown option: " + name );  }  it->second->setValueFromString( value );}void OptionManager::setOptionShortName( const std::string& name, const std::string& value ) {  std::map< std::string, OptionBase* >::iterator it = short_hash.find( name );  if ( it == short_hash.end() ) {    throw IllegalOptionError( "Unknown option: " + name );  }  it->second->setValueFromString( value );}void OptionManager::resetToInit( void ) {  for ( std::vector< OptionBase* >::iterator it = option_vector.begin();	it != option_vector.end();	++it ) {    (*it)->resetToInit();  }}AMIS_NAMESPACE_END// end of OptionManager.cc

⌨️ 快捷键说明

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