aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src/vespa/searchcore/proton/test/resulthandler.h
blob: d5954e3067894cd9cb6a1b2905484bfed02a6ca1 (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once

#include <vespa/searchcore/proton/persistenceengine/resulthandler.h>

namespace proton::test {

class GenericResultHandler : public IGenericResultHandler
{
private:
    std::unique_ptr<storage::spi::Result> _result;
public:
    ~GenericResultHandler() override;
    void handle(const storage::spi::Result &result) override;
    bool valid() const { return static_cast<bool>(_result); }
    const storage::spi::Result &getResult() const { return *_result; }
};


class BucketInfoResultHandler : public IBucketInfoResultHandler
{
private:
    std::unique_ptr<storage::spi::BucketInfoResult> _result;
public:
    ~BucketInfoResultHandler() override;
    void handle(const storage::spi::BucketInfoResult &result) override;
    bool valid() const { return static_cast<bool>(_result); }
    const storage::spi::BucketInfoResult &getResult() const { return *_result; }
    const storage::spi::BucketInfo &getInfo() const { return getResult().getBucketInfo(); }
};


class BucketIdListResultHandler : public IBucketIdListResultHandler
{
private:
    std::unique_ptr<storage::spi::BucketIdListResult> _result;
public:
    ~BucketIdListResultHandler() override;
    void handle(storage::spi::BucketIdListResult result) override;
    bool valid() const { return static_cast<bool>(_result); }
    const storage::spi::BucketIdListResult &getResult() const { return *_result; }
    const storage::spi::BucketIdListResult::List &getList() const { return getResult().getList(); }
};

}