blob: f39fef3f4fd7d741f64566ce4476fcf5b9a86d32 [file] [log] [blame]
yusukes1168eda2016-04-27 07:52:081// Copyright 2016 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef ASH_LINK_HANDLER_MODEL_FACTORY_H_
6#define ASH_LINK_HANDLER_MODEL_FACTORY_H_
7
8#include <memory>
9
10#include "ash/ash_export.h"
11#include "base/macros.h"
12
13class GURL;
14
15namespace ash {
16
17class LinkHandlerModel;
18
19// A class for creating a LinkHandlerModel object.
20class ASH_EXPORT LinkHandlerModelFactory {
21 public:
22 LinkHandlerModelFactory();
23 virtual ~LinkHandlerModelFactory();
24
25 // Returns a model for the |url|. When such a model for the |url| cannot be
26 // created, returns nullptr.
27 virtual std::unique_ptr<LinkHandlerModel> CreateModel(const GURL& url);
28
29 private:
30 DISALLOW_COPY_AND_ASSIGN(LinkHandlerModelFactory);
31};
32
33} // namespace ash
34
35#endif // ASH_LINK_HANDLER_MODEL_FACTORY_H_