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

📄 pluginconfigcache.hpp

📁 ncbi源码
💻 HPP
字号:
/* * =========================================================================== * PRODUCTION $Log: PluginConfigCache.hpp,v $ * PRODUCTION Revision 1000.1  2003/11/21 18:18:51  gouriano * PRODUCTION PRODUCTION: UPGRADED [ORIGINAL] Dev-tree R1.3 * PRODUCTION * =========================================================================== *//* $Id: PluginConfigCache.hpp,v 1000.1 2003/11/21 18:18:51 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: *   CPluginConfigCache is a collection of saved (or saveable) configuration values *  for plugins.  It is the parent container class streamed in and out of ASN.1 files *  to persist these configuration values. * * Remark: *   This code was originally generated by application DATATOOL *   using specifications from the data definition file *   'plugin.asn'. */#ifndef GUI_PLUGIN_PLUGINCONFIGCACHE_HPP#define GUI_PLUGIN_PLUGINCONFIGCACHE_HPP// generated includes#include <gui/config/PluginConfigCache_.hpp>#include <gui/config/PluginConfigValues.hpp>// generated classesBEGIN_NCBI_SCOPEBEGIN_objects_SCOPE // namespace ncbi::objects::class NCBI_GUICONFIG_EXPORT CPluginConfigCache : public CPluginConfigCache_Base{    typedef CPluginConfigCache_Base Tparent;public:    // constructor    CPluginConfigCache(void);    // destructor    ~CPluginConfigCache(void);    // merge two PCC's together, presumably from different files.    //  the other_pcc's values over-write this one's.    //  when the type, style and key are duplicates.     CPluginConfigCache& Merge(const CPluginConfigCache& other_pcc);        // Accessing and Changing values.     const string&  GetStringByKey(        const string& type,         const string& style,         const string& key,         const string& delim = "|"        ) const;            const string&  GetStringByKey(        const CPluginConfigValues& pcv,        const string& key,         const string& delim = "|"        ) const;        CPluginConfigValues&     AddKeyString(        const string& type,     // the type and style identifying the PCV we are going to store the value in.        const string& style,    // or which 'includes' directly or indirectly that PCV.        const string& typekey,  // a multipart key of type names to iterate through for include-PCVs. empty otherwise.        const string& key,      // a multipart data key entirely within one PCV        const string& value,    // the value to store.        const string& delim = "|"   // delimiter used in both typekey and key.        );            CPluginConfigValues&    // return the key/value PCV we actually store stuff in.    AddKeyString(              // this will be pcv if typekey is empty.        CPluginConfigValues& pcv,   // the PCV we will start adding stuff to.        const string& typekey,      // type names for 'include' PCV(s)        const string& key,          // data key.        const string& value,        // data to store.        const string& delim = "|"   // delimiter for both typekey and key.        );     bool  DelKeyvalue(        const string& type,         const string& style,         const string& key,         const string& delim = "|"        );            bool  DelKeyvalue(        CPluginConfigValues& pcv,        const string& key,         const string& delim = "|"        );        // Accessing and changing Sets of values.    bool                        HasPCV(const string& type, const string& style) const;    const CPluginConfigValues&  GetPCV(const string& type, const string& style) const;    TData                       GetPCVsByType(const string& type) const;    list<string>                GetStyleNamesByType(const string& type) const;        CPluginConfigValues&    SetPCV(const string& type, const string& style);    CPluginConfigValues&    SavePCV(const CPluginConfigValues& pcv);    void                    DeletePCV(const string& type, const string& style);    CPluginConfigValues&    DupPCV(const string& type, const string& oldstyle, const string& newstyle);        // return style if there is not PCV with this type and style.    // otherwise append numbers on to the end of style until we find one that is not used.    // so SetPCV(type, MakeUniqueStyle(type, style)) will always create a new PCV.    string  MakeUniqueStyle(const string& type, const string& style) const;        private:    // Prohibit copy constructor and assignment operator    CPluginConfigCache(const CPluginConfigCache& value);    CPluginConfigCache& operator=(const CPluginConfigCache& value);        static TData::const_iterator    s_FindPCV(const string& type, const string& style, const TData&);    static TData::iterator          s_FindPCV(const string& type, const string& style, TData&);};/////////////////// CPluginConfigCache inline methods// constructorinlineCPluginConfigCache::CPluginConfigCache(void){}inlineconst string& CPluginConfigCache::GetStringByKey(    const string& type,     const string& style,     const string& key,     const string& delim    ) const{    return GetStringByKey(GetPCV(type, style), key, delim);}inlineCPluginConfigValues& CPluginConfigCache::AddKeyString(    const string& type,     // the type and style identifying the PCV we are going to store the value in.    const string& style,    // or which 'includes' directly or indirectly that PCV.    const string& typekey,  // a multipart key of type names to iterate through for include-PCVs. empty otherwise.    const string& key,      // a multipart data key entirely within one PCV    const string& value,    // the value to store.    const string& delim     // delimiter used in both typekey and key.    ){    return AddKeyString(SetPCV(type, style), typekey, key, value, delim);}        inlinebool CPluginConfigCache::DelKeyvalue(    const string& type,     const string& style,     const string& key,     const string& delim    ){    return DelKeyvalue(SetPCV(type, style), key, delim);}/////////////////// end of CPluginConfigCache inline methodsEND_objects_SCOPE // namespace ncbi::objects::END_NCBI_SCOPE/** ===========================================================================** $Log: PluginConfigCache.hpp,v $* Revision 1000.1  2003/11/21 18:18:51  gouriano* PRODUCTION: UPGRADED [ORIGINAL] Dev-tree R1.3** Revision 1.3  2003/11/21 12:48:32  rsmith* Add ability to delete entries by key.** Revision 1.2  2003/10/10 19:35:31  dicuccio* Added export specifiers** Revision 1.1  2003/10/10 17:41:23  rsmith* moved from gui/plugin to gui/config** Revision 1.5  2003/08/26 19:35:14  rsmith* add methods to get a list of style names for a particular type* and to return an unused style name, give a type and style.** Revision 1.4  2003/08/19 18:16:45  rsmith* delete ExistsPCV, redundant with HasPCV.* new method AddKeyString.* Merge merges PCVs as units. Does not recursively merge their values.** Revision 1.3  2003/08/13 20:21:43  rsmith* Add Merge method and get rid of FindIf** Revision 1.2  2003/08/05 19:30:19  meric* Added 'inline' keyword for inlined function GetStringByKey()** Revision 1.1  2003/08/05 17:37:38  rsmith* Classes to allow saving of plugins configuration values as ASN.1.*** ===========================================================================*/#endif // GUI_PLUGIN_PLUGINCONFIGCACHE_HPP/* Original file checksum: lines: 93, chars: 2515, CRC32: a681cde */

⌨️ 快捷键说明

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