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 7namespace browser_sync { 8 9ModelSafeGroup 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 23std::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 41ModelSafeWorker::ModelSafeWorker() {} 42 43ModelSafeWorker::~ModelSafeWorker() {} 44 45void ModelSafeWorker::DoWorkAndWaitUntilDone(Callback0::Type* work) { 46 work->Run(); // For GROUP_PASSIVE, we do the work on the current thread. 47} 48 49ModelSafeGroup ModelSafeWorker::GetModelSafeGroup() { 50 return GROUP_PASSIVE; 51} 52 53bool 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