• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
GetGroupForModelType(const syncable::ModelType type,const ModelSafeRoutingInfo & routes)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 
ModelSafeGroupToString(ModelSafeGroup group)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 
ModelSafeWorker()41 ModelSafeWorker::ModelSafeWorker() {}
42 
~ModelSafeWorker()43 ModelSafeWorker::~ModelSafeWorker() {}
44 
DoWorkAndWaitUntilDone(Callback0::Type * work)45 void ModelSafeWorker::DoWorkAndWaitUntilDone(Callback0::Type* work) {
46   work->Run();  // For GROUP_PASSIVE, we do the work on the current thread.
47 }
48 
GetModelSafeGroup()49 ModelSafeGroup ModelSafeWorker::GetModelSafeGroup() {
50   return GROUP_PASSIVE;
51 }
52 
CurrentThreadIsWorkThread()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