• 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/notifier/invalidation_util.h"
6 
7 #include <sstream>
8 
9 namespace sync_notifier {
10 
RunAndDeleteClosure(invalidation::Closure * task)11 void RunAndDeleteClosure(invalidation::Closure* task) {
12   task->Run();
13   delete task;
14 }
15 
RealModelTypeToObjectId(syncable::ModelType model_type,invalidation::ObjectId * object_id)16 bool RealModelTypeToObjectId(syncable::ModelType model_type,
17                              invalidation::ObjectId* object_id) {
18   std::string notification_type;
19   if (!syncable::RealModelTypeToNotificationType(
20           model_type, &notification_type)) {
21     return false;
22   }
23   object_id->Init(invalidation::ObjectSource::CHROME_SYNC, notification_type);
24   return true;
25 }
26 
ObjectIdToRealModelType(const invalidation::ObjectId & object_id,syncable::ModelType * model_type)27 bool ObjectIdToRealModelType(const invalidation::ObjectId& object_id,
28                              syncable::ModelType* model_type) {
29   return
30       syncable::NotificationTypeToRealModelType(
31           object_id.name(), model_type);
32 }
33 
ObjectIdToString(const invalidation::ObjectId & object_id)34 std::string ObjectIdToString(
35     const invalidation::ObjectId& object_id) {
36   std::stringstream ss;
37   ss << "{ ";
38   ss << "name: " << object_id.name() << ", ";
39   ss << "source: " << object_id.source();
40   ss << " }";
41   return ss.str();
42 }
43 
ObjectIdPToString(const invalidation::ObjectIdP & object_id)44 std::string ObjectIdPToString(
45     const invalidation::ObjectIdP& object_id) {
46   return ObjectIdToString(
47       invalidation::ObjectId(
48           (invalidation::ObjectSource_Type) object_id.source(),
49           object_id.name().string_value()));
50 }
51 
StatusToString(const invalidation::Status & status)52 std::string StatusToString(
53     const invalidation::Status& status) {
54   std::stringstream ss;
55   ss << "{ ";
56   ss << "code: " << status.code() << ", ";
57   ss << "description: " << status.description();
58   ss << " }";
59   return ss.str();
60 }
61 
InvalidationToString(const invalidation::Invalidation & invalidation)62 std::string InvalidationToString(
63     const invalidation::Invalidation& invalidation) {
64   std::stringstream ss;
65   ss << "{ ";
66   ss << "object_id: " << ObjectIdToString(invalidation.object_id()) << ", ";
67   ss << "version: " << invalidation.version();
68   ss << " }";
69   return ss.str();
70 }
71 
RegistrationUpdateToString(const invalidation::RegistrationUpdate & update)72 std::string RegistrationUpdateToString(
73     const invalidation::RegistrationUpdate& update) {
74   std::stringstream ss;
75   ss << "{ ";
76   ss << "type: " << update.type() << ", ";
77   ss << "object_id: " << ObjectIdPToString(update.object_id()) << ", ";
78   ss << "version: " << update.version() << ", ";
79   ss << "sequence_number: " << update.sequence_number();
80   ss << " }";
81   return ss.str();
82 }
83 
RegistrationUpdateResultToString(const invalidation::RegistrationUpdateResult & update_result)84 std::string RegistrationUpdateResultToString(
85     const invalidation::RegistrationUpdateResult& update_result) {
86   std::stringstream ss;
87   ss << "{ ";
88   ss << "operation: "
89      << RegistrationUpdateToString(update_result.operation()) << ", ";
90   ss << "status: " << StatusToString(update_result.status());
91   ss << " }";
92   return ss.str();
93 }
94 
95 }  // namespace sync_notifier
96