diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-06 12:44:51 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-06 13:51:43 +0000 |
commit | 20abbaa6eb1b411bbc43b98c3bb5bc8e79a86153 (patch) | |
tree | d0eb22f90787408b402848f06b8b5f578542c3d4 /persistence | |
parent | 3110d9380650e0f68fad2a621ea71d083519446a (diff) |
Use enum class for the flags.
Diffstat (limited to 'persistence')
6 files changed, 44 insertions, 47 deletions
diff --git a/persistence/src/tests/dummyimpl/dummypersistence_test.cpp b/persistence/src/tests/dummyimpl/dummypersistence_test.cpp index 3b30f5e29ca..2c245f377e1 100644 --- a/persistence/src/tests/dummyimpl/dummypersistence_test.cpp +++ b/persistence/src/tests/dummyimpl/dummypersistence_test.cpp @@ -19,14 +19,14 @@ namespace { struct Fixture { BucketContent content; - void insert(DocumentId id, Timestamp timestamp, int meta_flags) { + void insert(DocumentId id, Timestamp timestamp, DocumentMetaFlags meta_flags) { content.insert(DocEntry::create(timestamp, meta_flags, id)); } Fixture() { - insert(DocumentId("id:ns:type::test:3"), Timestamp(3), NONE); - insert(DocumentId("id:ns:type::test:1"), Timestamp(1), NONE); - insert(DocumentId("id:ns:type::test:2"), Timestamp(2), NONE); + insert(DocumentId("id:ns:type::test:3"), Timestamp(3), DocumentMetaFlags::NONE); + insert(DocumentId("id:ns:type::test:1"), Timestamp(1), DocumentMetaFlags::NONE); + insert(DocumentId("id:ns:type::test:2"), Timestamp(2), DocumentMetaFlags::NONE); } }; @@ -63,13 +63,13 @@ TEST_F("require that BucketContent can provide bucket info", Fixture) { uint32_t lastChecksum = 0; EXPECT_NOT_EQUAL(lastChecksum, f.content.getBucketInfo().getChecksum()); lastChecksum = f.content.getBucketInfo().getChecksum(); - f.insert(DocumentId("id:ns:type::test:3"), Timestamp(4), NONE); + f.insert(DocumentId("id:ns:type::test:3"), Timestamp(4), DocumentMetaFlags::NONE); EXPECT_NOT_EQUAL(lastChecksum, f.content.getBucketInfo().getChecksum()); lastChecksum = f.content.getBucketInfo().getChecksum(); - f.insert(DocumentId("id:ns:type::test:2"), Timestamp(5), REMOVE_ENTRY); + f.insert(DocumentId("id:ns:type::test:2"), Timestamp(5), DocumentMetaFlags::REMOVE_ENTRY); EXPECT_NOT_EQUAL(lastChecksum, f.content.getBucketInfo().getChecksum()); - f.insert(DocumentId("id:ns:type::test:1"), Timestamp(6), REMOVE_ENTRY); - f.insert(DocumentId("id:ns:type::test:3"), Timestamp(7), REMOVE_ENTRY); + f.insert(DocumentId("id:ns:type::test:1"), Timestamp(6), DocumentMetaFlags::REMOVE_ENTRY); + f.insert(DocumentId("id:ns:type::test:3"), Timestamp(7), DocumentMetaFlags::REMOVE_ENTRY); EXPECT_EQUAL(0u, f.content.getBucketInfo().getChecksum()); } diff --git a/persistence/src/tests/spi/clusterstatetest.cpp b/persistence/src/tests/spi/clusterstatetest.cpp index 205661ba930..b044552d672 100644 --- a/persistence/src/tests/spi/clusterstatetest.cpp +++ b/persistence/src/tests/spi/clusterstatetest.cpp @@ -266,7 +266,7 @@ TEST(DocEntryTest, test_basics) { } TEST(DocEntryTest, test_meta_only) { - DocEntry::UP e = DocEntry::create(Timestamp(9), 0); + DocEntry::UP e = DocEntry::create(Timestamp(9), DocumentMetaFlags::NONE); EXPECT_EQ(9, e->getTimestamp()); EXPECT_FALSE(e->isRemove()); EXPECT_EQ(24, e->getSize()); @@ -274,13 +274,13 @@ TEST(DocEntryTest, test_meta_only) { EXPECT_EQ(nullptr, e->getDocument()); EXPECT_EQ(nullptr, e->getDocumentId()); - DocEntry::UP r = DocEntry::create(Timestamp(666), 1); + DocEntry::UP r = DocEntry::create(Timestamp(666), DocumentMetaFlags::REMOVE_ENTRY); EXPECT_EQ(666, r->getTimestamp()); EXPECT_TRUE(r->isRemove()); } TEST(DocEntryTest, test_docid_only) { - DocEntry::UP e = DocEntry::create(Timestamp(9), 0, DocumentId("id:test:test::1")); + DocEntry::UP e = DocEntry::create(Timestamp(9), DocumentMetaFlags::NONE, DocumentId("id:test:test::1")); EXPECT_EQ(9, e->getTimestamp()); EXPECT_FALSE(e->isRemove()); EXPECT_EQ(48, e->getSize()); @@ -291,7 +291,7 @@ TEST(DocEntryTest, test_docid_only) { TEST(DocEntryTest, test_document_only) { document::TestDocMan testDocMan; - DocEntry::UP e = DocEntry::create(Timestamp(9), 0, testDocMan.createRandomDocument(0, 1000)); + DocEntry::UP e = DocEntry::create(Timestamp(9), testDocMan.createRandomDocument(0, 1000)); EXPECT_EQ(9, e->getTimestamp()); EXPECT_FALSE(e->isRemove()); EXPECT_EQ(664, e->getSize()); diff --git a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp index 19c03a97f05..a85c1c49752 100644 --- a/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp +++ b/persistence/src/vespa/persistence/dummyimpl/dummypersistence.cpp @@ -435,7 +435,7 @@ DummyPersistence::putAsync(const Bucket& b, Timestamp t, Document::SP doc, Conte } } else { LOG(spam, "Inserting document %s", doc->toString(true).c_str()); - auto entry = DocEntry::create(t, NONE, Document::UP(doc->clone())); + auto entry = DocEntry::create(t, Document::UP(doc->clone())); (*bc)->insert(std::move(entry)); bc.reset(); onComplete->onComplete(std::make_unique<Result>()); @@ -493,7 +493,7 @@ DummyPersistence::removeAsync(const Bucket& b, std::vector<TimeStampAndDocumentI } DocEntry::SP entry((*bc)->getEntry(id)); numRemoves += (entry.get() && !entry->isRemove()) ? 1 : 0; - auto remEntry = DocEntry::create(t, REMOVE_ENTRY, id); + auto remEntry = DocEntry::create(t, DocumentMetaFlags::REMOVE_ENTRY, id); if ((*bc)->hasTimestamp(t)) { (*bc)->eraseEntry(t); @@ -658,8 +658,7 @@ DummyPersistence::iterate(IteratorId id, uint64_t maxByteSize, Context& ctx) con assert(entry->getDocument()); // Create new document with only wanted fields. Document::UP filtered(FieldSet::createDocumentSubsetCopy(*entry->getDocument(), *it->_fieldSet)); - auto ret = DocEntry::create(entry->getTimestamp(), entry->getFlags(), - std::move(filtered), entry->getDocumentSize()); + auto ret = DocEntry::create(entry->getTimestamp(), std::move(filtered), entry->getDocumentSize()); entries.push_back(std::move(ret)); } else { // Use entry as-is. diff --git a/persistence/src/vespa/persistence/spi/docentry.cpp b/persistence/src/vespa/persistence/spi/docentry.cpp index e586b4e414f..3235de25d46 100644 --- a/persistence/src/vespa/persistence/spi/docentry.cpp +++ b/persistence/src/vespa/persistence/spi/docentry.cpp @@ -11,7 +11,7 @@ namespace { class DocEntryWithId final : public DocEntry { public: - DocEntryWithId(Timestamp t, int metaFlags, const DocumentId &docId); + DocEntryWithId(Timestamp t, DocumentMetaFlags metaFlags, const DocumentId &docId); ~DocEntryWithId(); vespalib::string toString() const override; const DocumentId* getDocumentId() const override { return _documentId.get(); } @@ -22,7 +22,7 @@ private: class DocEntryWithDoc final : public DocEntry { public: - DocEntryWithDoc(Timestamp t, int metaFlags, DocumentUP doc); + DocEntryWithDoc(Timestamp t, DocumentUP doc); /** * Constructor that can be used by providers that already know @@ -30,7 +30,7 @@ public: * call to getSerializedSize can be avoided. This value shall be the size of the document _before_ * any field filtering is performed. */ - DocEntryWithDoc(Timestamp t, int metaFlags, DocumentUP doc, size_t serializedDocumentSize); + DocEntryWithDoc(Timestamp t, DocumentUP doc, size_t serializedDocumentSize); ~DocEntryWithDoc(); vespalib::string toString() const override; const Document* getDocument() const override { return _document.get(); } @@ -41,17 +41,17 @@ private: DocumentUP _document; }; -DocEntryWithDoc::DocEntryWithDoc(Timestamp t, int metaFlags, DocumentUP doc) - : DocEntry(t, metaFlags, doc->serialize().size()), +DocEntryWithDoc::DocEntryWithDoc(Timestamp t, DocumentUP doc) + : DocEntry(t, DocumentMetaFlags::NONE, doc->serialize().size()), _document(std::move(doc)) { } -DocEntryWithDoc::DocEntryWithDoc(Timestamp t, int metaFlags, DocumentUP doc, size_t serializedDocumentSize) - : DocEntry(t, metaFlags, serializedDocumentSize), +DocEntryWithDoc::DocEntryWithDoc(Timestamp t, DocumentUP doc, size_t serializedDocumentSize) + : DocEntry(t, DocumentMetaFlags::NONE, serializedDocumentSize), _document(std::move(doc)) { } -DocEntryWithId::DocEntryWithId(Timestamp t, int metaFlags, const DocumentId& docId) +DocEntryWithId::DocEntryWithId(Timestamp t, DocumentMetaFlags metaFlags, const DocumentId& docId) : DocEntry(t, metaFlags, docId.getSerializedSize()), _documentId(std::make_unique<DocumentId>(docId)) { } @@ -63,7 +63,7 @@ vespalib::string DocEntryWithId::toString() const { std::ostringstream out; - out << "DocEntry(" << getTimestamp() << ", " << getFlags() << ", " << *_documentId << ")"; + out << "DocEntry(" << getTimestamp() << ", " << int(getFlags()) << ", " << *_documentId << ")"; return out.str(); } @@ -71,7 +71,7 @@ vespalib::string DocEntryWithDoc::toString() const { std::ostringstream out; - out << "DocEntry(" << getTimestamp() << ", " << getFlags() << ", "; + out << "DocEntry(" << getTimestamp() << ", " << int(getFlags()) << ", "; if (_document.get()) { out << "Doc(" << _document->getId() << ")"; } else { @@ -84,20 +84,20 @@ DocEntryWithDoc::toString() const } DocEntry::UP -DocEntry::create(Timestamp t, int metaFlags) { - return std::make_unique<DocEntry>(t, metaFlags); +DocEntry::create(Timestamp t, DocumentMetaFlags metaFlags) { + return UP(new DocEntry(t, metaFlags)); } DocEntry::UP -DocEntry::create(Timestamp t, int metaFlags, const DocumentId &docId) { +DocEntry::create(Timestamp t, DocumentMetaFlags metaFlags, const DocumentId &docId) { return std::make_unique<DocEntryWithId>(t, metaFlags, docId); } DocEntry::UP -DocEntry::create(Timestamp t, int metaFlags, DocumentUP doc) { - return std::make_unique<DocEntryWithDoc>(t, metaFlags, std::move(doc)); +DocEntry::create(Timestamp t, DocumentUP doc) { + return std::make_unique<DocEntryWithDoc>(t, std::move(doc)); } DocEntry::UP -DocEntry::create(Timestamp t, int metaFlags, DocumentUP doc, SizeType serializedDocumentSize) { - return std::make_unique<DocEntryWithDoc>(t, metaFlags, std::move(doc), serializedDocumentSize); +DocEntry::create(Timestamp t, DocumentUP doc, SizeType serializedDocumentSize) { + return std::make_unique<DocEntryWithDoc>(t, std::move(doc), serializedDocumentSize); } DocEntry::~DocEntry() = default; @@ -111,7 +111,7 @@ vespalib::string DocEntry::toString() const { std::ostringstream out; - out << "DocEntry(" << _timestamp << ", " << _metaFlags << ", metadata only)"; + out << "DocEntry(" << _timestamp << ", " << int(_metaFlags) << ", metadata only)"; return out.str(); } diff --git a/persistence/src/vespa/persistence/spi/docentry.h b/persistence/src/vespa/persistence/spi/docentry.h index 90be8eedc0c..d2da3f03881 100644 --- a/persistence/src/vespa/persistence/spi/docentry.h +++ b/persistence/src/vespa/persistence/spi/docentry.h @@ -17,7 +17,7 @@ namespace storage::spi { -enum DocumentMetaFlags { +enum class DocumentMetaFlags { NONE = 0x0, REMOVE_ENTRY = 0x1 }; @@ -28,15 +28,14 @@ public: using UP = std::unique_ptr<DocEntry>; using SP = std::shared_ptr<DocEntry>; - DocEntry(Timestamp t, int metaFlags) : DocEntry(t, metaFlags, 0) { } DocEntry(const DocEntry &) = delete; DocEntry & operator=(const DocEntry &) = delete; DocEntry(DocEntry &&) = delete; DocEntry & operator=(DocEntry &&) = delete; virtual ~DocEntry(); - bool isRemove() const { return (_metaFlags & REMOVE_ENTRY); } + bool isRemove() const { return (_metaFlags == DocumentMetaFlags::REMOVE_ENTRY); } Timestamp getTimestamp() const { return _timestamp; } - int getFlags() const { return _metaFlags; } + DocumentMetaFlags getFlags() const { return _metaFlags; } /** * @return In-memory size of this doc entry, including document instance. * In essence: serialized size of document + sizeof(DocEntry). @@ -55,19 +54,20 @@ public: virtual const Document* getDocument() const { return nullptr; } virtual const DocumentId* getDocumentId() const { return nullptr; } virtual DocumentUP releaseDocument(); - static UP create(Timestamp t, int metaFlags); - static UP create(Timestamp t, int metaFlags, const DocumentId &docId); - static UP create(Timestamp t, int metaFlags, DocumentUP doc); - static UP create(Timestamp t, int metaFlags, DocumentUP doc, SizeType serializedDocumentSize); + static UP create(Timestamp t, DocumentMetaFlags metaFlags); + static UP create(Timestamp t, DocumentMetaFlags metaFlags, const DocumentId &docId); + static UP create(Timestamp t, DocumentUP doc); + static UP create(Timestamp t, DocumentUP doc, SizeType serializedDocumentSize); protected: - DocEntry(Timestamp t, int metaFlags, SizeType size) + DocEntry(Timestamp t, DocumentMetaFlags metaFlags, SizeType size) : _timestamp(t), _metaFlags(metaFlags), _size(size) {} private: + DocEntry(Timestamp t, DocumentMetaFlags metaFlags) : DocEntry(t, metaFlags, 0) { } Timestamp _timestamp; - int _metaFlags; + DocumentMetaFlags _metaFlags; SizeType _size; }; diff --git a/persistence/src/vespa/persistence/spi/test.cpp b/persistence/src/vespa/persistence/spi/test.cpp index 0f10b839f98..9aaa26adb59 100644 --- a/persistence/src/vespa/persistence/spi/test.cpp +++ b/persistence/src/vespa/persistence/spi/test.cpp @@ -21,9 +21,7 @@ std::unique_ptr<DocEntry> cloneDocEntry(const DocEntry & e) { std::unique_ptr<DocEntry> ret; if (e.getDocument()) { - ret = DocEntry::create(e.getTimestamp(), e.getFlags(), - std::make_unique<Document>(*e.getDocument()), - e.getDocumentSize()); + ret = DocEntry::create(e.getTimestamp(), std::make_unique<Document>(*e.getDocument()), e.getDocumentSize()); } else if (e.getDocumentId()) { ret = DocEntry::create(e.getTimestamp(), e.getFlags(), *e.getDocumentId()); } else { |