summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-09-07 07:39:16 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-09-07 07:39:16 +0000
commit7092bc14ab8a99b496d1494e374e65a1734e9100 (patch)
tree40d2ee0e1a85acda1ea6ad8e2057892c33212c42 /searchsummary
parent13a1c96df7ea794ceca6d1ff4d154d898cae798b (diff)
GC unused StringEnum, and avoid including config in header files.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.cpp2
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/juniperproperties.h10
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/resultclass.h16
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/resultconfig.cpp7
-rw-r--r--searchsummary/src/vespa/searchsummary/docsummary/resultconfig.h37
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);
};
}