1// Copyright 2014 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 "sync/tools/invalidation_helper.h"
6
7#include "google/cacheinvalidation/types.pb.h"
8
9namespace syncer {
10
11bool RealModelTypeToObjectId(ModelType model_type,
12                             invalidation::ObjectId* object_id) {
13  std::string notification_type;
14  if (!RealModelTypeToNotificationType(model_type, &notification_type)) {
15    return false;
16  }
17  object_id->Init(ipc::invalidation::ObjectSource::CHROME_SYNC,
18                  notification_type);
19  return true;
20}
21
22ObjectIdSet ModelTypeSetToObjectIdSet(ModelTypeSet model_types) {
23  ObjectIdSet ids;
24  for (ModelTypeSet::Iterator it = model_types.First(); it.Good(); it.Inc()) {
25    invalidation::ObjectId model_type_as_id;
26    if (!RealModelTypeToObjectId(it.Get(), &model_type_as_id)) {
27      DLOG(WARNING) << "Invalid model type " << it.Get();
28      continue;
29    }
30    ids.insert(model_type_as_id);
31  }
32  return ids;
33}
34
35}  // namespace syncer
36