17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/external_data_fetcher.h" 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/callback.h" 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/policy/core/common/external_data_manager.h" 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace policy { 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 129ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben MurdochExternalDataFetcher::ExternalDataFetcher( 139ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch base::WeakPtr<ExternalDataManager> manager, 149ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch const std::string& policy) 159ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch : manager_(manager), 169ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch policy_(policy) { 179ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch} 189ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochExternalDataFetcher::ExternalDataFetcher(const ExternalDataFetcher& other) 207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch : manager_(other.manager_), 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch policy_(other.policy_) { 227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochExternalDataFetcher::~ExternalDataFetcher() { 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// static 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochbool ExternalDataFetcher::Equals(const ExternalDataFetcher* first, 297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const ExternalDataFetcher* second) { 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (!first && !second) 317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return true; 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (!first || !second) 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return false; 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch return first->manager_.get() == second->manager_.get() && 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch first->policy_ == second->policy_; 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochvoid ExternalDataFetcher::Fetch(const FetchCallback& callback) const { 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (manager_) 407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch manager_->Fetch(policy_, callback); 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch else 429ab5563a3196760eb381d102cbb2bc0f7abc6a50Ben Murdoch callback.Run(scoped_ptr<std::string>()); 437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} // namespace policy 46