aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-03-10 12:36:00 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2022-03-10 12:36:00 +0000
commitb519d9d84b718a9e05207d2a1c1fc71e9e55a877 (patch)
treeb2d00f59452e90063794295f1b65f52a5842859c /searchlib
parent80abc0659f07445536d92c59fae58dfb1f0ecae8 (diff)
Reduce code visibility by reducing includes not needed.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/attribute/enumstore/enumstore_test.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/CMakeLists.txt1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/enum_store_types.h4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h10
-rw-r--r--searchlib/src/vespa/searchlib/attribute/enumstore.h1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/i_enum_store.cpp18
-rw-r--r--searchlib/src/vespa/searchlib/attribute/i_enum_store.h37
-rw-r--r--searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multienumattribute.h1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multistringattribute.h10
-rw-r--r--searchlib/src/vespa/searchlib/attribute/numericbase.h1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/stringattribute.h4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/stringbase.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/stringbase.h9
18 files changed, 60 insertions, 47 deletions
diff --git a/searchlib/src/tests/attribute/enumstore/enumstore_test.cpp b/searchlib/src/tests/attribute/enumstore/enumstore_test.cpp
index c360bad6d75..02ff01043b0 100644
--- a/searchlib/src/tests/attribute/enumstore/enumstore_test.cpp
+++ b/searchlib/src/tests/attribute/enumstore/enumstore_test.cpp
@@ -1,6 +1,7 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/searchlib/attribute/enumstore.hpp>
+#include <vespa/searchlib/attribute/enum_store_loaders.h>
#include <vespa/vespalib/test/memory_allocator_observer.h>
#include <vespa/vespalib/gtest/gtest.h>
diff --git a/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt b/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
index 9e5a8d4dfbb..4fff7cf96c1 100644
--- a/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
+++ b/searchlib/src/vespa/searchlib/attribute/CMakeLists.txt
@@ -50,6 +50,7 @@ vespa_add_library(searchlib_attribute OBJECT
flagattribute.cpp
floatbase.cpp
i_document_weight_attribute.cpp
+ i_enum_store.cpp
iattributemanager.cpp
iattributesavetarget.cpp
imported_attribute_vector.cpp
diff --git a/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h b/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h
index bfd11bafe33..2a72fcac628 100644
--- a/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h
+++ b/searchlib/src/vespa/searchlib/attribute/enum_store_loaders.h
@@ -4,8 +4,6 @@
#include "enum_store_types.h"
#include "loadedenumvalue.h"
-#include <vespa/vespalib/datastore/entryref.h>
-#include <vespa/vespalib/stllike/allocator.h>
namespace search { class IEnumStore; }
diff --git a/searchlib/src/vespa/searchlib/attribute/enum_store_types.h b/searchlib/src/vespa/searchlib/attribute/enum_store_types.h
index d2713d942fd..435e94fe592 100644
--- a/searchlib/src/vespa/searchlib/attribute/enum_store_types.h
+++ b/searchlib/src/vespa/searchlib/attribute/enum_store_types.h
@@ -2,16 +2,16 @@
#pragma once
-#include <vespa/searchcommon/attribute/iattributevector.h>
#include <vespa/vespalib/datastore/entryref.h>
#include <vespa/vespalib/stllike/allocator.h>
+#include <vector>
namespace search::enumstore {
using Index = vespalib::datastore::EntryRef;
using InternalIndex = vespalib::datastore::EntryRefT<22>;
using IndexVector = std::vector<Index, vespalib::allocator_large<Index>>;
-using EnumHandle = attribute::IAttributeVector::EnumHandle;
+using EnumHandle = uint32_t;
using EnumVector = std::vector<uint32_t, vespalib::allocator_large<uint32_t>>;
}
diff --git a/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp b/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp
index 26ff891fbb2..7583200806d 100644
--- a/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.cpp
@@ -1,12 +1,14 @@
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include "enumhintsearchcontext.h"
+#include "i_enum_store_dictionary.h"
#include <vespa/searchlib/queryeval/emptysearch.h>
+#include <vespa/vespalib/datastore/i_unique_store_dictionary_read_snapshot.h>
+
namespace search::attribute {
using queryeval::SearchIterator;
-using vespalib::btree::BTreeNode;
using fef::TermFieldMatchData;
EnumHintSearchContext::
diff --git a/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h b/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h
index a1389c1381e..7042de9ddb8 100644
--- a/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h
+++ b/searchlib/src/vespa/searchlib/attribute/enumhintsearchcontext.h
@@ -2,15 +2,15 @@
#pragma once
-#include "i_enum_store_dictionary.h"
#include "ipostinglistsearchcontext.h"
-#include <vespa/searchlib/queryeval/searchiterator.h>
namespace vespalib::datastore {
-class EntryComparator;
-class IUniqueStoreDictionaryReadSnapshot;
+ class EntryComparator;
+ class IUniqueStoreDictionaryReadSnapshot;
}
+namespace search { class IEnumStoreDictionary; }
+
namespace search::attribute {
/**
@@ -34,7 +34,7 @@ protected:
void lookupTerm(const vespalib::datastore::EntryComparator &comp);
void lookupRange(const vespalib::datastore::EntryComparator &low, const vespalib::datastore::EntryComparator &high);
- queryeval::SearchIterator::UP
+ std::unique_ptr<queryeval::SearchIterator>
createPostingIterator(fef::TermFieldMatchData *matchData, bool strict) override;
void fetchPostings(const queryeval::ExecuteInfo & execInfo) override;
diff --git a/searchlib/src/vespa/searchlib/attribute/enumstore.h b/searchlib/src/vespa/searchlib/attribute/enumstore.h
index 5b47d42b6ed..52f42ed368e 100644
--- a/searchlib/src/vespa/searchlib/attribute/enumstore.h
+++ b/searchlib/src/vespa/searchlib/attribute/enumstore.h
@@ -4,7 +4,6 @@
#include "enum_store_compaction_spec.h"
#include "enum_store_dictionary.h"
-#include "enum_store_loaders.h"
#include "enumcomparator.h"
#include "i_enum_store.h"
#include "loadedenumvalue.h"
diff --git a/searchlib/src/vespa/searchlib/attribute/i_enum_store.cpp b/searchlib/src/vespa/searchlib/attribute/i_enum_store.cpp
new file mode 100644
index 00000000000..106f67cede7
--- /dev/null
+++ b/searchlib/src/vespa/searchlib/attribute/i_enum_store.cpp
@@ -0,0 +1,18 @@
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include "i_enum_store.h"
+#include "enum_store_loaders.h"
+
+namespace search {
+
+enumstore::EnumeratedLoader
+IEnumStore::make_enumerated_loader() {
+ return enumstore::EnumeratedLoader(*this);
+}
+
+enumstore::EnumeratedPostingsLoader
+IEnumStore::make_enumerated_postings_loader() {
+ return enumstore::EnumeratedPostingsLoader(*this);
+}
+
+}
diff --git a/searchlib/src/vespa/searchlib/attribute/i_enum_store.h b/searchlib/src/vespa/searchlib/attribute/i_enum_store.h
index b4e86e2a60c..d8b09ba211f 100644
--- a/searchlib/src/vespa/searchlib/attribute/i_enum_store.h
+++ b/searchlib/src/vespa/searchlib/attribute/i_enum_store.h
@@ -2,28 +2,28 @@
#pragma once
-#include "enum_store_loaders.h"
#include "enum_store_types.h"
#include <vespa/vespalib/datastore/atomic_entry_ref.h>
-#include <vespa/vespalib/datastore/unique_store_enumerator.h>
+#include <memory>
namespace vespalib {
-
-class AddressSpace;
-class MemoryUsage;
-
+ class AddressSpace;
+ class MemoryUsage;
}
namespace vespalib::datastore {
-
-class CompactionSpec;
-class CompactionStrategy;
-class DataStoreBase;
-
-template <typename> class UniqueStoreRemapper;
-
+ class CompactionSpec;
+ class CompactionStrategy;
+ class DataStoreBase;
+ class EntryComparator;
+ template <typename> class UniqueStoreRemapper;
+ template <typename> class UniqueStoreEnumerator;
}
+namespace search::enumstore {
+ class EnumeratedLoader;
+ class EnumeratedPostingsLoader;
+}
namespace search {
class BufferWriter;
@@ -42,7 +42,7 @@ public:
using EnumHandle = enumstore::EnumHandle;
using EnumVector = enumstore::EnumVector;
using EnumIndexRemapper = vespalib::datastore::UniqueStoreRemapper<InternalIndex>;
- using Enumerator = vespalib::datastore::UniqueStoreEnumerator<IEnumStore::InternalIndex>;
+ using Enumerator = vespalib::datastore::UniqueStoreEnumerator<InternalIndex>;
using IndexList = std::vector<Index>;
@@ -68,13 +68,8 @@ public:
// Should only be used by unit tests.
virtual void inc_compaction_count() = 0;
- enumstore::EnumeratedLoader make_enumerated_loader() {
- return enumstore::EnumeratedLoader(*this);
- }
-
- enumstore::EnumeratedPostingsLoader make_enumerated_postings_loader() {
- return enumstore::EnumeratedPostingsLoader(*this);
- }
+ enumstore::EnumeratedLoader make_enumerated_loader();
+ enumstore::EnumeratedPostingsLoader make_enumerated_postings_loader();
virtual std::unique_ptr<Enumerator> make_enumerator() const = 0;
virtual std::unique_ptr<vespalib::datastore::EntryComparator> allocate_comparator() const = 0;
diff --git a/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h b/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h
index 5dbaed15581..bbd811095c6 100644
--- a/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h
+++ b/searchlib/src/vespa/searchlib/attribute/loadedenumvalue.h
@@ -3,7 +3,6 @@
#pragma once
#include "enum_store_types.h"
-#include <vespa/vespalib/stllike/allocator.h>
#include <vespa/vespalib/util/arrayref.h>
#include <cassert>
#include <limits>
diff --git a/searchlib/src/vespa/searchlib/attribute/multienumattribute.h b/searchlib/src/vespa/searchlib/attribute/multienumattribute.h
index 1a6460a96a8..fb3e66ac60a 100644
--- a/searchlib/src/vespa/searchlib/attribute/multienumattribute.h
+++ b/searchlib/src/vespa/searchlib/attribute/multienumattribute.h
@@ -2,7 +2,6 @@
#pragma once
-#include "enum_store_loaders.h"
#include "i_enum_store.h"
#include "loadedenumvalue.h"
#include "multivalue.h"
diff --git a/searchlib/src/vespa/searchlib/attribute/multistringattribute.h b/searchlib/src/vespa/searchlib/attribute/multistringattribute.h
index 18f2bcb53f5..415bfa25b16 100644
--- a/searchlib/src/vespa/searchlib/attribute/multistringattribute.h
+++ b/searchlib/src/vespa/searchlib/attribute/multistringattribute.h
@@ -2,11 +2,11 @@
#pragma once
-#include <vespa/searchlib/attribute/stringbase.h>
-#include <vespa/searchlib/attribute/enumattribute.h>
-#include <vespa/searchlib/attribute/enumstore.h>
-#include <vespa/searchlib/attribute/multienumattribute.h>
-#include <vespa/searchlib/attribute/multi_value_mapping.h>
+#include "stringbase.h"
+#include "enumattribute.h"
+#include "enumstore.h"
+#include "multienumattribute.h"
+#include "multi_value_mapping.h"
#include "enumhintsearchcontext.h"
#include "multivalue.h"
diff --git a/searchlib/src/vespa/searchlib/attribute/numericbase.h b/searchlib/src/vespa/searchlib/attribute/numericbase.h
index bd3a68fdc60..bd6ffda1b19 100644
--- a/searchlib/src/vespa/searchlib/attribute/numericbase.h
+++ b/searchlib/src/vespa/searchlib/attribute/numericbase.h
@@ -5,7 +5,6 @@
#include "attributevector.h"
#include "i_enum_store.h"
#include "loadedenumvalue.h"
-#include "enum_store_loaders.h"
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp b/searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp
index c28131159e7..742b67f20ae 100644
--- a/searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp
@@ -3,6 +3,7 @@
#include "postinglistattribute.h"
#include "loadednumericvalue.h"
#include "enumcomparator.h"
+#include "enum_store_loaders.h"
#include <vespa/vespalib/util/array.hpp>
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp b/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp
index bb454a8b0d4..608f37c0cfa 100644
--- a/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp
+++ b/searchlib/src/vespa/searchlib/attribute/singleenumattribute.hpp
@@ -7,6 +7,7 @@
#include "ipostinglistattributebase.h"
#include "singleenumattributesaver.h"
#include "load_utils.h"
+#include "enum_store_loaders.h"
#include <vespa/vespalib/datastore/unique_store_remapper.h>
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/stringattribute.h b/searchlib/src/vespa/searchlib/attribute/stringattribute.h
index bd0ca998a1a..70508f14168 100644
--- a/searchlib/src/vespa/searchlib/attribute/stringattribute.h
+++ b/searchlib/src/vespa/searchlib/attribute/stringattribute.h
@@ -2,8 +2,8 @@
#pragma once
-#include <vespa/searchlib/attribute/stringbase.h>
-#include <vespa/searchlib/attribute/enumstore.h>
+#include "stringbase.h"
+#include "enumstore.h"
namespace search {
diff --git a/searchlib/src/vespa/searchlib/attribute/stringbase.cpp b/searchlib/src/vespa/searchlib/attribute/stringbase.cpp
index 57882ddf1ae..6062c4f2096 100644
--- a/searchlib/src/vespa/searchlib/attribute/stringbase.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/stringbase.cpp
@@ -4,6 +4,7 @@
#include "load_utils.h"
#include "readerbase.h"
#include "stringbase.h"
+#include "enum_store_loaders.h"
#include <vespa/document/fieldvalue/fieldvalue.h>
#include <vespa/searchlib/query/query_term_ucs4.h>
#include <vespa/searchlib/util/fileutil.hpp>
diff --git a/searchlib/src/vespa/searchlib/attribute/stringbase.h b/searchlib/src/vespa/searchlib/attribute/stringbase.h
index 1c3f51b80bb..495427d3e45 100644
--- a/searchlib/src/vespa/searchlib/attribute/stringbase.h
+++ b/searchlib/src/vespa/searchlib/attribute/stringbase.h
@@ -3,11 +3,10 @@
#pragma once
#include "no_loaded_vector.h"
-#include "enum_store_loaders.h"
-#include <vespa/searchlib/attribute/attributevector.h>
-#include <vespa/searchlib/attribute/changevector.h>
-#include <vespa/searchlib/attribute/i_enum_store.h>
-#include <vespa/searchlib/attribute/loadedenumvalue.h>
+#include "attributevector.h"
+#include "changevector.h"
+#include "i_enum_store.h"
+#include "loadedenumvalue.h"
#include <vespa/vespalib/regex/regex.h>
#include <vespa/vespalib/text/lowercase.h>
#include <vespa/vespalib/text/utf8.h>