1 // Copyright (c) 2012 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 "sync/internal_api/public/engine/passive_model_worker.h" 6 7 #include "base/message_loop/message_loop.h" 8 9 namespace syncer { 10 11 PassiveModelWorker::PassiveModelWorker(const base::MessageLoop* sync_loop, 12 WorkerLoopDestructionObserver* observer) 13 : ModelSafeWorker(observer), 14 sync_loop_(sync_loop) { 15 } 16 17 PassiveModelWorker::~PassiveModelWorker() { 18 } 19 20 void PassiveModelWorker::RegisterForLoopDestruction() { 21 base::MessageLoop::current()->AddDestructionObserver(this); 22 SetWorkingLoopToCurrent(); 23 } 24 25 SyncerError PassiveModelWorker::DoWorkAndWaitUntilDoneImpl( 26 const WorkCallback& work) { 27 DCHECK_EQ(base::MessageLoop::current(), sync_loop_); 28 // Simply do the work on the current thread. 29 return work.Run(); 30 } 31 32 ModelSafeGroup PassiveModelWorker::GetModelSafeGroup() { 33 return GROUP_PASSIVE; 34 } 35 36 } // namespace syncer 37