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 "components/policy/core/common/external_data_fetcher.h" 6 7#include "base/callback.h" 8#include "components/policy/core/common/external_data_manager.h" 9 10namespace policy { 11 12ExternalDataFetcher::ExternalDataFetcher( 13 base::WeakPtr<ExternalDataManager> manager, 14 const std::string& policy) 15 : manager_(manager), 16 policy_(policy) { 17} 18 19ExternalDataFetcher::ExternalDataFetcher(const ExternalDataFetcher& other) 20 : manager_(other.manager_), 21 policy_(other.policy_) { 22} 23 24ExternalDataFetcher::~ExternalDataFetcher() { 25} 26 27// static 28bool 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 38void 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 46