aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/test/memoryindex/ordered_field_index_inserter.h
blob: 151a5f296e9b512a2d1fc78d65edccb367bff2da (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

#pragma once

#include <vespa/searchlib/memoryindex/i_ordered_field_index_inserter.h>

namespace search::memoryindex::test {

class OrderedFieldIndexInserterBackend;

/*
 * Test version of ordered field index inserter that uses a backend to create
 * a string representation used to validate correct use of ordered field index inserter.
 */
class OrderedFieldIndexInserter : public IOrderedFieldIndexInserter {
    OrderedFieldIndexInserterBackend& _backend;
    uint32_t _field_id;
public:
    OrderedFieldIndexInserter(OrderedFieldIndexInserterBackend& backend, uint32_t field_id);
    ~OrderedFieldIndexInserter() override;
    void setNextWord(const vespalib::stringref word) override;
    void add(uint32_t docId, const index::DocIdAndFeatures &features) override;
    vespalib::datastore::EntryRef getWordRef() const override;
    void remove(uint32_t docId) override;
    void flush() override;
    void commit() override;
    void rewind() override;
};

}