aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/vespa/searchlib/fef/ranking_constants.cpp
blob: 1d0df1b8d94928c30bccb4737af67c7df7b7335c (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

#include "ranking_constants.h"

namespace search::fef {

RankingConstants::Constant::Constant(const vespalib::string &name_in,
                                     const vespalib::string &type_in,
                                     const vespalib::string &filePath_in)
    : name(name_in),
      type(type_in),
      filePath(filePath_in)
{
}

RankingConstants::Constant::~Constant() = default;

bool
RankingConstants::Constant::operator==(const Constant &rhs) const
{
    return (name == rhs.name) &&
           (type == rhs.type) &&
           (filePath == rhs.filePath);
}

RankingConstants::RankingConstants()
    : _constants()
{
}

RankingConstants::~RankingConstants() = default;
RankingConstants::RankingConstants(RankingConstants &&) noexcept = default;

RankingConstants::RankingConstants(const Vector &constants)
    : _constants()
{
    for (const auto &constant : constants) {
        _constants.insert(std::make_pair(constant.name, constant));
    }
}

bool
RankingConstants::operator==(const RankingConstants &rhs) const
{
    return _constants == rhs._constants;
}

const RankingConstants::Constant *
RankingConstants::getConstant(const vespalib::string &name) const
{
    auto itr = _constants.find(name);
    if (itr != _constants.end()) {
        return &itr->second;
    }
    return nullptr;
}

}