- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / browser / policy / external_data_fetcher.cc
1 // Copyright 2013 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 #include "chrome/browser/policy/external_data_fetcher.h"
6
7 #include "base/callback.h"
8 #include "chrome/browser/policy/external_data_manager.h"
9
10 namespace policy {
11
12 ExternalDataFetcher::ExternalDataFetcher(
13     base::WeakPtr<ExternalDataManager> manager,
14     const std::string& policy)
15     : manager_(manager),
16       policy_(policy) {
17 }
18
19 ExternalDataFetcher::ExternalDataFetcher(const ExternalDataFetcher& other)
20     : manager_(other.manager_),
21       policy_(other.policy_) {
22 }
23
24 ExternalDataFetcher::~ExternalDataFetcher() {
25 }
26
27 // static
28 bool ExternalDataFetcher::Equals(const ExternalDataFetcher* first,
29                                  const ExternalDataFetcher* second) {
30   if (!first && !second)
31     return true;
32   if (!first || !second)
33     return false;
34   return first->manager_.get() == second->manager_.get() &&
35          first->policy_ == second->policy_;
36 }
37
38 void ExternalDataFetcher::Fetch(const FetchCallback& callback) const {
39   if (manager_)
40     manager_->Fetch(policy_, callback);
41   else
42     callback.Run(scoped_ptr<std::string>());
43 }
44
45 }  // namespace policy