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