From 89521c8531b0eeb03bd28f899ecd59a9f8b334a6 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Thu, 7 Jun 2018 12:35:23 +0200 Subject: Reduce code visibility --- .../src/apps/tests/memoryindexstress_test.cpp | 7 ++- .../src/vespa/searchlib/memoryindex/dictionary.h | 9 +--- .../searchlib/memoryindex/documentinverter.cpp | 1 - .../vespa/searchlib/memoryindex/documentinverter.h | 57 ++++++---------------- .../memoryindex/i_document_remove_listener.h | 14 ++---- .../vespa/searchlib/memoryindex/memoryfieldindex.h | 11 ++--- .../vespa/searchlib/memoryindex/memoryindex.cpp | 38 ++++++++------- .../src/vespa/searchlib/memoryindex/memoryindex.h | 33 ++++++------- 8 files changed, 65 insertions(+), 105 deletions(-) (limited to 'searchlib') diff --git a/searchlib/src/apps/tests/memoryindexstress_test.cpp b/searchlib/src/apps/tests/memoryindexstress_test.cpp index edb9160a1fb..1ba264e0bfe 100644 --- a/searchlib/src/apps/tests/memoryindexstress_test.cpp +++ b/searchlib/src/apps/tests/memoryindexstress_test.cpp @@ -4,7 +4,6 @@ #include #include #include -#include #include #include #include @@ -15,6 +14,10 @@ #include #include #include +#include +#include +#include +#include #include #include #include @@ -144,7 +147,7 @@ makeDoc(const DocumentTypeRepo &repo, uint32_t i, idstr << "id:test:test:: " << i; DocumentId id(idstr.str()); const DocumentType *docType = repo.getDocumentType(doc_type_name); - Document::UP doc(new Document(*docType, id)); + auto doc(std::make_unique(*docType, id)); doc->setRepo(repo); if (!titleString.empty()) { setFieldValue(*doc, title, titleString); diff --git a/searchlib/src/vespa/searchlib/memoryindex/dictionary.h b/searchlib/src/vespa/searchlib/memoryindex/dictionary.h index 6ee971c343f..e9db79c1bd8 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/dictionary.h +++ b/searchlib/src/vespa/searchlib/memoryindex/dictionary.h @@ -4,8 +4,7 @@ #include "memoryfieldindex.h" -namespace search { -namespace memoryindex { +namespace search::memoryindex { class IDocumentRemoveListener; class FieldInverter; @@ -57,8 +56,4 @@ public: uint32_t getNumFields() const { return _numFields; } }; -} // namespace search::memoryindex - - -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/memoryindex/documentinverter.cpp b/searchlib/src/vespa/searchlib/memoryindex/documentinverter.cpp index 4c71b7c14c6..e609c2aefd1 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/documentinverter.cpp +++ b/searchlib/src/vespa/searchlib/memoryindex/documentinverter.cpp @@ -84,7 +84,6 @@ DocumentInverter::~DocumentInverter() { _invertThreads.sync(); _pushThreads.sync(); - } diff --git a/searchlib/src/vespa/searchlib/memoryindex/documentinverter.h b/searchlib/src/vespa/searchlib/memoryindex/documentinverter.h index fa34cb2289c..177024c9860 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/documentinverter.h +++ b/searchlib/src/vespa/searchlib/memoryindex/documentinverter.h @@ -2,21 +2,16 @@ #pragma once -#include -#include -#include -#include -#include #include "i_document_remove_listener.h" +#include -namespace search -{ -class ISequencedTaskExecutor; -class IDestructorCallback; +namespace search { + class ISequencedTaskExecutor; + class IDestructorCallback; +} -namespace memoryindex -{ +namespace search::memoryindex { class FieldInverter; class UrlFieldInverter; @@ -34,21 +29,10 @@ private: typedef DocTypeBuilder::UriField UriField; typedef DocTypeBuilder::SchemaIndexFields SchemaIndexFields; - void - addFieldPath(const document::DocumentType &docType, - uint32_t fieldId); - - void - buildFieldPath(const document::DocumentType & docType, - const document::DataType *dataType); - - void - invertNormalDocTextField(size_t fieldId, - const document::FieldValue &field); - - void - invertNormalDocUriField(const UriField &handle, - const document::FieldValue &field); + void addFieldPath(const document::DocumentType &docType, uint32_t fieldId); + void buildFieldPath(const document::DocumentType & docType, const document::DataType *dataType); + void invertNormalDocTextField(size_t fieldId, const document::FieldValue &field); + void invertNormalDocUriField(const UriField &handle, const document::FieldValue &field); //typedef document::FieldPath FieldPath; typedef document::Field FieldPath; @@ -68,11 +52,7 @@ private: * * @return schema used by this index */ - const index::Schema & - getSchema() const - { - return _schema; - } + const index::Schema &getSchema() const { return _schema; } public: /** @@ -91,9 +71,7 @@ public: * * @param dict dictionary */ - void - pushDocuments(Dictionary &dict, - const std::shared_ptr &onWriteDone); + void pushDocuments(Dictionary &dict, const std::shared_ptr &onWriteDone); /** * Invert a document. @@ -102,8 +80,7 @@ public: * @param doc the document * **/ - void - invertDocument(uint32_t docId, const document::Document &doc); + void invertDocument(uint32_t docId, const document::Document &doc); /** * Remove a document. @@ -116,13 +93,9 @@ public: return _inverters[fieldId].get(); } - const std::vector > & - getInverters() const { return _inverters; } + const std::vector > & getInverters() const { return _inverters; } uint32_t getNumFields() const { return _inverters.size(); } }; -} // namespace memoryindex - -} // namespace search - +} diff --git a/searchlib/src/vespa/searchlib/memoryindex/i_document_remove_listener.h b/searchlib/src/vespa/searchlib/memoryindex/i_document_remove_listener.h index 853646ca84f..436ee0a49e3 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/i_document_remove_listener.h +++ b/searchlib/src/vespa/searchlib/memoryindex/i_document_remove_listener.h @@ -2,11 +2,9 @@ #pragma once -namespace search -{ +#include -namespace memoryindex -{ +namespace search::memoryindex { /** * Interface used to track which {wordRef, fieldId} pairs that are @@ -16,13 +14,7 @@ class IDocumentRemoveListener { public: virtual ~IDocumentRemoveListener() {} - - virtual void remove(const vespalib::stringref word, - uint32_t docId) = 0; + virtual void remove(const vespalib::stringref word, uint32_t docId) = 0; }; - } - -} - diff --git a/searchlib/src/vespa/searchlib/memoryindex/memoryfieldindex.h b/searchlib/src/vespa/searchlib/memoryindex/memoryfieldindex.h index e12233fe1ae..92a69277b76 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/memoryfieldindex.h +++ b/searchlib/src/vespa/searchlib/memoryindex/memoryfieldindex.h @@ -14,8 +14,7 @@ #include #include -namespace search { -namespace memoryindex { +namespace search::memoryindex { class OrderedDocumentInserter; /* @@ -183,9 +182,9 @@ public: } }; -} // namespace search::memoryindex +} -namespace btree { +namespace search::btree { extern template class BTreeNodeDataWrap; -} // namespace search::btree - -} // namespace search +} diff --git a/searchlib/src/vespa/searchlib/memoryindex/memoryindex.cpp b/searchlib/src/vespa/searchlib/memoryindex/memoryindex.cpp index 40d243d857e..ee61ef5a42f 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/memoryindex.cpp +++ b/searchlib/src/vespa/searchlib/memoryindex/memoryindex.cpp @@ -2,6 +2,7 @@ #include "memoryindex.h" #include "postingiterator.h" +#include "documentinverter.h" #include #include #include @@ -45,7 +46,9 @@ using queryeval::FieldSpecBaseList; using queryeval::FieldSpec; using queryeval::IRequestContext; -namespace memoryindex { +} + +namespace search::memoryindex { MemoryIndex::MemoryIndex(const Schema &schema, ISequencedTaskExecutor &invertThreads, @@ -53,10 +56,10 @@ MemoryIndex::MemoryIndex(const Schema &schema, : _schema(schema), _invertThreads(invertThreads), _pushThreads(pushThreads), - _inverter0(_schema, _invertThreads, _pushThreads), - _inverter1(_schema, _invertThreads, _pushThreads), - _inverter(&_inverter0), - _dictionary(_schema), + _inverter0(std::make_unique(_schema, _invertThreads, _pushThreads)), + _inverter1(std::make_unique(_schema, _invertThreads, _pushThreads)), + _inverter(_inverter0.get()), + _dictionary(std::make_unique(_schema)), _frozen(false), _maxDocId(0), // docId 0 is reserved _numDocs(0), @@ -93,8 +96,7 @@ void MemoryIndex::removeDocument(uint32_t docId) { if (_frozen) { - LOG(warning, "Memory index frozen: ignoring remove of document (%u)", - docId); + LOG(warning, "Memory index frozen: ignoring remove of document (%u)", docId); return; } _inverter->removeDocument(docId); @@ -109,7 +111,7 @@ MemoryIndex::commit(const std::shared_ptr &onWriteDone) { _invertThreads.sync(); // drain inverting into this inverter _pushThreads.sync(); // drain use of other inverter - _inverter->pushDocuments(_dictionary, onWriteDone); + _inverter->pushDocuments(*_dictionary, onWriteDone); flipInverter(); } @@ -117,11 +119,7 @@ MemoryIndex::commit(const std::shared_ptr &onWriteDone) void MemoryIndex::flipInverter() { - if (_inverter != &_inverter0) { - _inverter = &_inverter0; - } else { - _inverter = &_inverter1; - } + _inverter = (_inverter != _inverter0.get()) ? _inverter0.get(): _inverter1.get(); } void @@ -133,7 +131,7 @@ MemoryIndex::freeze() void MemoryIndex::dump(IndexBuilder &indexBuilder) { - _dictionary.dump(indexBuilder); + _dictionary->dump(indexBuilder); } namespace { @@ -243,7 +241,7 @@ MemoryIndex::createBlueprint(const IRequestContext & requestContext, if (fieldId == Schema::UNKNOWN_FIELD_ID || _hiddenFields[fieldId]) { return Blueprint::UP(new EmptyBlueprint(field)); } - CreateBlueprintVisitor visitor(*this, requestContext, field, fieldId, _dictionary); + CreateBlueprintVisitor visitor(*this, requestContext, field, fieldId, *_dictionary); const_cast(term).accept(visitor); return visitor.getResult(); } @@ -252,10 +250,15 @@ MemoryUsage MemoryIndex::getMemoryUsage() const { MemoryUsage usage; - usage.merge(_dictionary.getMemoryUsage()); + usage.merge(_dictionary->getMemoryUsage()); return usage; } +uint64_t +MemoryIndex::getNumWords() const { + return _dictionary->getNumUniqueWords(); +} + void MemoryIndex::pruneRemovedFields(const Schema &schema) { @@ -287,5 +290,4 @@ MemoryIndex::getPrunedSchema() const return _prunedSchema; } -} // namespace memoryindex -} // namespace search +} diff --git a/searchlib/src/vespa/searchlib/memoryindex/memoryindex.h b/searchlib/src/vespa/searchlib/memoryindex/memoryindex.h index 8d18b5e52df..d12e844f35f 100644 --- a/searchlib/src/vespa/searchlib/memoryindex/memoryindex.h +++ b/searchlib/src/vespa/searchlib/memoryindex/memoryindex.h @@ -2,20 +2,22 @@ #pragma once -#include "dictionary.h" -#include "documentinverter.h" -#include +#include #include -#include +#include +#include #include -namespace search { +namespace search::index { class IndexBuilder; } -namespace index { class IndexBuilder; } +namespace search { class ISequencedTaskExecutor; } -class ISequencedTaskExecutor; +namespace document { class Document; } -namespace memoryindex { +namespace search::memoryindex { + +class DocumentInverter; +class Dictionary; /** * Lock-free implementation of a memory-based index @@ -27,10 +29,10 @@ private: index::Schema _schema; ISequencedTaskExecutor &_invertThreads; ISequencedTaskExecutor &_pushThreads; - DocumentInverter _inverter0; - DocumentInverter _inverter1; - DocumentInverter *_inverter; - Dictionary _dictionary; + std::unique_ptr _inverter0; + std::unique_ptr _inverter1; + DocumentInverter *_inverter; + std::unique_ptr _dictionary; bool _frozen; uint32_t _maxDocId; uint32_t _numDocs; @@ -158,9 +160,7 @@ public: return _numDocs; } - virtual uint64_t getNumWords() const { - return _dictionary.getNumUniqueWords(); - } + virtual uint64_t getNumWords() const; void pruneRemovedFields(const index::Schema &schema); @@ -176,5 +176,4 @@ public: uint64_t getStaticMemoryFootprint() const { return _staticMemoryFootprint; } }; -} // namespace memoryindex -} // namespace search +} -- cgit v1.2.3