02036d500f845f4953034412418b3e6ebbcfc3c7
[platform/framework/web/crosswalk.git] / src / sync / internal_api / public / engine / passive_model_worker.cc
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