11ae29591efbb29492ce05378909ccf4028d7c1eeBehdad Esfahbod// Copyright 2013 The Chromium Authors. All rights reserved. 27ed91eca1eaa96b79eae780778e89bb9ec44c1eeBehdad Esfahbod// Use of this source code is governed by a BSD-style license that can be 3d0a31f5a43c4743671c4941fe45dda059aada0beBehdad Esfahbod// found in the LICENSE file. 47842e56b97ce677b83bdab09cda48bc2d89ac75aJust 5e388db566b9ba42669c7e353db4293cf27bc2a5bBehdad Esfahbod#include "chrome/browser/chromeos/policy/user_cloud_external_data_manager.h" 67842e56b97ce677b83bdab09cda48bc2d89ac75aJust 77842e56b97ce677b83bdab09cda48bc2d89ac75aJust#include "base/location.h" 87842e56b97ce677b83bdab09cda48bc2d89ac75aJust#include "base/memory/scoped_ptr.h" 9d0a31f5a43c4743671c4941fe45dda059aada0beBehdad Esfahbod#include "base/sequenced_task_runner.h" 10d0a31f5a43c4743671c4941fe45dda059aada0beBehdad Esfahbod#include "chrome/browser/chromeos/policy/cloud_external_data_store.h" 11d0a31f5a43c4743671c4941fe45dda059aada0beBehdad Esfahbod#include "components/policy/core/common/cloud/cloud_policy_store.h" 12960280bbd6277b56be45595a050a720a49fd5917Behdad Esfahbod#include "components/policy/core/common/cloud/resource_cache.h" 137842e56b97ce677b83bdab09cda48bc2d89ac75aJust 147842e56b97ce677b83bdab09cda48bc2d89ac75aJustnamespace policy { 157842e56b97ce677b83bdab09cda48bc2d89ac75aJust 167842e56b97ce677b83bdab09cda48bc2d89ac75aJustnamespace { 177842e56b97ce677b83bdab09cda48bc2d89ac75aJust 187842e56b97ce677b83bdab09cda48bc2d89ac75aJustconst char kCacheKey[] = "data"; 197842e56b97ce677b83bdab09cda48bc2d89ac75aJust 2081acddadbd0384e105becc1eac292e50e21084a5Behdad Esfahbod} // namespace 21f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust 22f8fd4777d273836a1222b72f6761cb6fdf9ec87aJustUserCloudExternalDataManager::UserCloudExternalDataManager( 23f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust const GetChromePolicyDetailsCallback& get_policy_details, 24f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust scoped_refptr<base::SequencedTaskRunner> backend_task_runner, 25f8fd4777d273836a1222b72f6761cb6fdf9ec87aJust scoped_refptr<base::SequencedTaskRunner> io_task_runner, 267842e56b97ce677b83bdab09cda48bc2d89ac75aJust const base::FilePath& cache_path, 277842e56b97ce677b83bdab09cda48bc2d89ac75aJust CloudPolicyStore* policy_store) 287842e56b97ce677b83bdab09cda48bc2d89ac75aJust : CloudExternalDataManagerBase(get_policy_details, 297842e56b97ce677b83bdab09cda48bc2d89ac75aJust backend_task_runner, 307842e56b97ce677b83bdab09cda48bc2d89ac75aJust io_task_runner), 317842e56b97ce677b83bdab09cda48bc2d89ac75aJust resource_cache_(new ResourceCache(cache_path, backend_task_runner)) { 323a9fd301808f5a8991ca9ac44028d1ecb22d307fBehdad Esfahbod SetPolicyStore(policy_store); 337842e56b97ce677b83bdab09cda48bc2d89ac75aJust SetExternalDataStore(make_scoped_ptr(new CloudExternalDataStore( 347842e56b97ce677b83bdab09cda48bc2d89ac75aJust kCacheKey, backend_task_runner, resource_cache_))); 35180ace6a5ff1399ec53bc696e8bef7cce6eef39aBehdad Esfahbod} 36cd5aad92f23737ff93a110d5c73d624658a28da8Behdad Esfahbod 377842e56b97ce677b83bdab09cda48bc2d89ac75aJustUserCloudExternalDataManager::~UserCloudExternalDataManager() { 387842e56b97ce677b83bdab09cda48bc2d89ac75aJust SetExternalDataStore(scoped_ptr<CloudExternalDataStore>()); 397842e56b97ce677b83bdab09cda48bc2d89ac75aJust backend_task_runner_->DeleteSoon(FROM_HERE, resource_cache_); 407842e56b97ce677b83bdab09cda48bc2d89ac75aJust} 417842e56b97ce677b83bdab09cda48bc2d89ac75aJust 428ea6439d3b66c5acc246261d761d4375bcb7cfabBehdad Esfahbod} // namespace policy 438ea6439d3b66c5acc246261d761d4375bcb7cfabBehdad Esfahbod