model_safe_worker.cc revision c407dc5cd9bdc5668497f21b26b09d988ab439de
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      NOTREACHED() << "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
41}  // namespace browser_sync
42