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

📄 single_value_config.hpp

📁 ncbi源码
💻 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 + -