📄 single_value_config.hpp
字号:
/* * =========================================================================== * PRODUCTION $Log: single_value_config.hpp,v $ * PRODUCTION Revision 1000.0 2004/04/12 18:17:35 gouriano * PRODUCTION PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.3 * PRODUCTION * =========================================================================== */#ifndef GUI_CONFIG___SINGLE_VALUE_HPP#define GUI_CONFIG___SINGLE_VALUE_HPP/* $Id: single_value_config.hpp,v 1000.0 2004/04/12 18:17:35 gouriano Exp $ * =========================================================================== * * PUBLIC DOMAIN NOTICE * National Center for Biotechnology Information * * This software/database is a "United States Government Work" under the * terms of the United States Copyright Act. It was written as part of * the author's official duties as a United States Government employee and * thus cannot be copyrighted. This software/database is freely available * to the public for use. The National Library of Medicine and the U.S. * Government have not placed any restriction on its use or reproduction. * * Although all reasonable efforts have been taken to ensure the accuracy * and reliability of the software and data, the NLM and the U.S. * Government do not and cannot warrant the performance or results that * may be obtained by using this software or data. The NLM and the U.S. * Government disclaim all warranties, express or implied, including * warranties of performance, merchantability or fitness for any particular * purpose. * * Please cite the author in any work or product based on this material. * * =========================================================================== * * Author: Robert G. Smith * */ /** * File Description: */// #include <gui/config/settings_set.hpp>#include <corelib/ncbistr.hpp>#include <util/static_map.hpp>BEGIN_NCBI_SCOPEclass SingleValueFactoryDefault : public IFactoryDefaultSettings{public: SingleValueFactoryDefault(const string& s) : m_str(s) {} virtual ~SingleValueFactoryDefault() {} string Get(const string& key) const { return m_str; }private: const string m_str;};template <typename ValueType>class CSingleValueConfig{public: typedef pair<const string, ValueType> TStrValType; typedef CStaticArrayMap<const string, ValueType, PCase> TStrValMapType; CSingleValueConfig() : m_ValuesMap(sc_Values, sizeof(sc_Values)) {} virtual ~CSingleValueConfig() {} /// convert between current settings and the PluginConfigCache. bool SetValueFromStr(const string& value_str) { typename TStrValMapType::const_iterator val_it = m_ValuesMap.find(value_str); if (val_it == m_ValuesMap.end()) { return false; } m_Value = val_it->second; return true; } virtual bool GetStrFromValue(string& value_str) const { ITERATE( typename TStrValMapType, val_it, m_ValuesMap) { if (val_it->second == m_Value) { value_str = val_it->first; return true; } } return false; } ValueType GetValue() const { return m_Value; } void SetValue(ValueType v) { m_Value = v; } protected: static const TStrValType sc_Values[];private: const TStrValMapType m_ValuesMap; ValueType m_Value;};END_NCBI_SCOPE/** ===========================================================================** $Log: single_value_config.hpp,v $* Revision 1000.0 2004/04/12 18:17:35 gouriano* PRODUCTION: IMPORTED [CATCHUP_003] Dev-tree R1.3** Revision 1.3 2004/03/16 15:36:06 vasilche* Added required typename keyword** Revision 1.2 2004/03/02 16:34:22 rsmith* move typedefs up to avoid compiler warnings.** Revision 1.1 2004/02/04 21:25:40 rsmith* initial checkin*** ===========================================================================*/#endif // GUI_CONFIG___SINGLE_VALUE_HPP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -