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