15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 55c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "chrome/browser/sync_file_system/drive_backend/remote_change_processor_wrapper.h" 65c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "base/memory/weak_ptr.h" 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "chrome/browser/sync_file_system/remote_change_processor.h" 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 105c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace sync_file_system { 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace drive_backend { 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuRemoteChangeProcessorWrapper::RemoteChangeProcessorWrapper( 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu RemoteChangeProcessor* remote_change_processor) 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu : remote_change_processor_(remote_change_processor) {} 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid RemoteChangeProcessorWrapper::PrepareForProcessRemoteChange( 1803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const storage::FileSystemURL& url, 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const RemoteChangeProcessor::PrepareChangeCallback& callback) { 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequence_checker_.CalledOnValidSequencedThread()); 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu remote_change_processor_->PrepareForProcessRemoteChange(url, callback); 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid RemoteChangeProcessorWrapper::ApplyRemoteChange( 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const FileChange& change, 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::FilePath& local_path, 2703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const storage::FileSystemURL& url, 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const SyncStatusCallback& callback) { 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequence_checker_.CalledOnValidSequencedThread()); 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu remote_change_processor_->ApplyRemoteChange( 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu change, local_path, url, callback); 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid RemoteChangeProcessorWrapper::FinalizeRemoteSync( 3503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const storage::FileSystemURL& url, 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu bool clear_local_changes, 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const base::Closure& completion_callback) { 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequence_checker_.CalledOnValidSequencedThread()); 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu remote_change_processor_->FinalizeRemoteSync( 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu url, clear_local_changes, completion_callback); 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 435c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liuvoid RemoteChangeProcessorWrapper::RecordFakeLocalChange( 4403b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const storage::FileSystemURL& url, 455c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const FileChange& change, 465c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu const SyncStatusCallback& callback) { 4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(sequence_checker_.CalledOnValidSequencedThread()); 485c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu remote_change_processor_->RecordFakeLocalChange(url, change, callback); 495c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 505c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 515c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace drive_backend 525c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace sync_file_system 53