• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
PassiveModelWorker(const base::MessageLoop * sync_loop,WorkerLoopDestructionObserver * observer)11 PassiveModelWorker::PassiveModelWorker(const base::MessageLoop* sync_loop,
12                                        WorkerLoopDestructionObserver* observer)
13     : ModelSafeWorker(observer),
14       sync_loop_(sync_loop) {
15 }
16 
~PassiveModelWorker()17 PassiveModelWorker::~PassiveModelWorker() {
18 }
19 
RegisterForLoopDestruction()20 void PassiveModelWorker::RegisterForLoopDestruction() {
21   base::MessageLoop::current()->AddDestructionObserver(this);
22   SetWorkingLoopToCurrent();
23 }
24 
DoWorkAndWaitUntilDoneImpl(const WorkCallback & work)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 
GetModelSafeGroup()32 ModelSafeGroup PassiveModelWorker::GetModelSafeGroup() {
33   return GROUP_PASSIVE;
34 }
35 
36 }  // namespace syncer
37