Home | History | Annotate | Download | only in engine
      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