Home | History | Annotate | Download | only in engine
      1 // Copyright (c) 2010 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 "chrome/browser/sync/engine/model_safe_worker.h"
      6 
      7 namespace browser_sync {
      8 
      9 ModelSafeGroup GetGroupForModelType(const syncable::ModelType type,
     10                                     const ModelSafeRoutingInfo& routes) {
     11   ModelSafeRoutingInfo::const_iterator it = routes.find(type);
     12   if (it == routes.end()) {
     13     // TODO(tim): We shouldn't end up here for TOP_LEVEL_FOLDER, but an issue
     14     // with the server's PermanentItemPopulator is causing TLF updates in
     15     // some cases.  See bug 36735.
     16     if (type != syncable::UNSPECIFIED && type != syncable::TOP_LEVEL_FOLDER)
     17       LOG(WARNING) << "Entry does not belong to active ModelSafeGroup!";
     18     return GROUP_PASSIVE;
     19   }
     20   return it->second;
     21 }
     22 
     23 std::string ModelSafeGroupToString(ModelSafeGroup group) {
     24   switch (group) {
     25     case GROUP_UI:
     26       return "GROUP_UI";
     27     case GROUP_DB:
     28       return "GROUP_DB";
     29     case GROUP_HISTORY:
     30       return "GROUP_HISTORY";
     31     case GROUP_PASSIVE:
     32       return "GROUP_PASSIVE";
     33     case GROUP_PASSWORD:
     34       return "GROUP_PASSWORD";
     35     default:
     36       NOTREACHED();
     37       return "INVALID";
     38   }
     39 }
     40 
     41 ModelSafeWorker::ModelSafeWorker() {}
     42 
     43 ModelSafeWorker::~ModelSafeWorker() {}
     44 
     45 void ModelSafeWorker::DoWorkAndWaitUntilDone(Callback0::Type* work) {
     46   work->Run();  // For GROUP_PASSIVE, we do the work on the current thread.
     47 }
     48 
     49 ModelSafeGroup ModelSafeWorker::GetModelSafeGroup() {
     50   return GROUP_PASSIVE;
     51 }
     52 
     53 bool ModelSafeWorker::CurrentThreadIsWorkThread() {
     54   // The passive group is not the work thread for any browser model.
     55   return false;
     56 }
     57 
     58 }  // namespace browser_sync
     59