diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-07 07:39:16 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-09-07 07:39:16 +0000 |
commit | 7092bc14ab8a99b496d1494e374e65a1734e9100 (patch) | |
tree | 40d2ee0e1a85acda1ea6ad8e2057892c33212c42 /searchsummary | |
parent | 13a1c96df7ea794ceca6d1ff4d154d898cae798b (diff) |
GC unused StringEnum, and avoid including config in header files.
Diffstat (limited to 'searchsummary')
5 files changed, 31 insertions, 41 deletions
diff --git a/searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.cpp b/searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.cpp index 8f6d6ed02ea..feb4c63df34 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.cpp @@ -2,8 +2,8 @@ #include "juniperproperties.h" #include <vespa/vespalib/util/stringfmt.h> +#include <vespa/searchsummary/config/config-juniperrc.h> -using vespa::config::search::summary::JuniperrcConfig; using vespalib::make_string; namespace search::docsummary { diff --git a/searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.h b/searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.h index 88e819056cf..ff0829d9008 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.h @@ -1,10 +1,13 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #pragma once -#include <vespa/searchsummary/config/config-juniperrc.h> #include <vespa/juniper/IJuniperProperties.h> +#include <vespa/vespalib/stllike/string.h> #include <map> +namespace vespa::config::search::summary::internal { + class InternalJuniperrcType; +} namespace search::docsummary { class JuniperProperties : public IJuniperProperties { @@ -19,6 +22,7 @@ private: public: + using JuniperrcConfig = vespa::config::search::summary::internal::InternalJuniperrcType;; /** * Constructs a juniper property object with default values set. */ @@ -26,7 +30,7 @@ public: /** * Constructs a juniper property object with default values set. */ - explicit JuniperProperties(const vespa::config::search::summary::JuniperrcConfig &cfg); + explicit JuniperProperties(const JuniperrcConfig &cfg); ~JuniperProperties() override; @@ -35,7 +39,7 @@ public: * * @param cfg The configuration object. */ - void configure(const vespa::config::search::summary::JuniperrcConfig &cfg); + void configure(const JuniperrcConfig &cfg); // Inherit doc from IJuniperProperties. const char *GetProperty(const char *name, const char *def) const override; diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h index d55adb5d098..7b4168a3ed9 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultclass.h @@ -5,7 +5,6 @@ #include "res_config_entry.h" #include <vespa/vespalib/stllike/string.h> #include <vespa/vespalib/stllike/hash_map.h> -#include <vespa/searchlib/util/stringenum.h> namespace search::docsummary { @@ -36,10 +35,8 @@ public: }; private: - ResultClass(const ResultClass &); - ResultClass& operator=(const ResultClass &); - typedef vespalib::hash_map<vespalib::string, int> NameIdMap; - typedef std::vector<ResConfigEntry> Configs; + using NameIdMap = vespalib::hash_map<vespalib::string, int>; + using Configs = std::vector<ResConfigEntry>; vespalib::string _name; // name of this class Configs _entries; // config entries for this result class @@ -51,7 +48,7 @@ private: size_t _num_field_writer_states; public: - typedef std::unique_ptr<ResultClass> UP; + using UP = std::unique_ptr<ResultClass>; /** * Constructor. Assign name and id to this result class. Also gain @@ -59,7 +56,9 @@ public: * * @param name the name of this result class. **/ - ResultClass(const char *name); + explicit ResultClass(const char *name); + ResultClass(const ResultClass &) = delete; + ResultClass& operator=(const ResultClass &) = delete; /** * Destructor. Delete internal structures. @@ -118,8 +117,7 @@ public: * * @return config entry or NULL if not found. **/ - const ResConfigEntry *GetEntry(uint32_t offset) const - { + const ResConfigEntry *GetEntry(uint32_t offset) const { return (offset < _entries.size()) ? &_entries[offset] : nullptr; } diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp index 90186c5d1d5..0a4f607b962 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp @@ -4,8 +4,8 @@ #include "docsum_field_writer.h" #include "docsum_field_writer_factory.h" #include "resultclass.h" -#include <vespa/vespalib/util/exceptions.h> #include <vespa/vespalib/stllike/hash_map.hpp> +#include <vespa/config-summary.h> #include <atomic> #include <vespa/log/log.h> @@ -23,11 +23,9 @@ ResultConfig::Clean() ResultConfig::ResultConfig() : _defaultSummaryId(-1), - _useV8geoPositions(false), _classLookup(), _nameLookup() { - } @@ -93,13 +91,12 @@ bool ResultConfig::wantedV8geoPositions() { } bool -ResultConfig::ReadConfig(const vespa::config::search::SummaryConfig &cfg, const char *configId, IDocsumFieldWriterFactory& docsum_field_writer_factory) +ResultConfig::ReadConfig(const SummaryConfig &cfg, const char *configId, IDocsumFieldWriterFactory& docsum_field_writer_factory) { bool rc = true; Reset(); int maxclassID = 0x7fffffff; // avoid negative classids _defaultSummaryId = cfg.defaultsummaryid; - _useV8geoPositions = cfg.usev8geopositions; global_useV8geoPositions = cfg.usev8geopositions; for (uint32_t i = 0; rc && i < cfg.classes.size(); i++) { diff --git a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h index 456cf9dea69..e0f460850f6 100644 --- a/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h +++ b/searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h @@ -3,9 +3,11 @@ #pragma once #include "res_type_utils.h" -#include <vespa/config-summary.h> -#include <vespa/searchlib/util/stringenum.h> +#include <vespa/vespalib/stllike/hash_map.h> +namespace vespa::config::search::internal { + class InternalSummaryType; +} namespace search::docsummary { class IDocsumFieldWriterFactory; @@ -28,20 +30,16 @@ class ResultClass; class ResultConfig { private: - ResultConfig(const ResultConfig &); - ResultConfig& operator=(const ResultConfig &); - - typedef vespalib::hash_map<vespalib::string, uint32_t> NameMap; - typedef vespalib::hash_map<uint32_t, std::unique_ptr<ResultClass>> IdMap; + using NameMap = vespalib::hash_map<vespalib::string, uint32_t>; + using IdMap = vespalib::hash_map<uint32_t, std::unique_ptr<ResultClass>>; uint32_t _defaultSummaryId; - bool _useV8geoPositions; IdMap _classLookup; NameMap _nameLookup; // name -> class id void Clean(); public: - bool useV8geoPositions() const { return _useV8geoPositions; } + using SummaryConfig = vespa::config::search::internal::InternalSummaryType; class iterator { public: iterator(IdMap::iterator it) : _it(it) { } @@ -68,16 +66,18 @@ public: IdMap::const_iterator _it; }; - iterator begin() { return iterator(_classLookup.begin()); } - iterator end() { return iterator(_classLookup.end()); } - const_iterator begin() const { return const_iterator(_classLookup.begin()); } - const_iterator end() const { return const_iterator(_classLookup.end()); } + iterator begin() { return { _classLookup.begin() }; } + iterator end() { return { _classLookup.end() }; } + const_iterator begin() const { return { _classLookup.begin() }; } + const_iterator end() const { return { _classLookup.end() }; } /** * Constructor. Create an initially empty result configuration. * NOTE: This method simply calls the Init method. **/ ResultConfig(); + ResultConfig(const ResultConfig &) = delete; + ResultConfig& operator=(const ResultConfig &) = delete; /** * Destructor. Delete all internal structures. NOTE: This method @@ -144,22 +144,13 @@ public: **/ uint32_t LookupResultClassId(const vespalib::string &name) const; - - /** - * Obtain the number of result classes held by this result - * configuration. - * - * @return number of result classes. - **/ - uint32_t GetNumResultClasses() const { return _classLookup.size(); } - /** * Read config that has been fetched from configserver. * * @return true(success)/false(fail) * @param configId reference on server **/ - bool ReadConfig(const vespa::config::search::SummaryConfig &cfg, const char *configId, IDocsumFieldWriterFactory& docsum_field_writer_factory); + bool ReadConfig(const SummaryConfig &cfg, const char *configId, IDocsumFieldWriterFactory& docsum_field_writer_factory); }; } |