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 46