blob: 996ba170c6dc337c2fbc31c475b0ba93fbf9c824 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_ASSIST_RANKER_RANKER_MODEL_H_
#define COMPONENTS_ASSIST_RANKER_RANKER_MODEL_H_
#include <memory>
#include <string>
#include "base/macros.h"
namespace assist_ranker {
class RankerModelProto;
class RankerModel {
public:
RankerModel();
~RankerModel();
// Returns a new ranker model constructed from |data|.
static std::unique_ptr<RankerModel> FromString(const std::string& data);
const RankerModelProto& proto() const { return *proto_; }
RankerModelProto* mutable_proto() const { return proto_.get(); }
// Returns true if this ranker model has expired.
bool IsExpired() const;
const std::string& GetSourceURL() const;
// Returns a serialization of this ranker model.
std::string SerializeAsString() const;
private:
// The underlying ranker model proto.
std::unique_ptr<RankerModelProto> proto_;
DISALLOW_COPY_AND_ASSIGN(RankerModel);
};
} // namespace assist_ranker
#endif // COMPONENTS_ASSIST_RANKER_RANKER_MODEL_H_