diff options
Diffstat (limited to 'chrome/browser/sync/notifier/invalidation_util.cc')
-rw-r--r-- | chrome/browser/sync/notifier/invalidation_util.cc | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/chrome/browser/sync/notifier/invalidation_util.cc b/chrome/browser/sync/notifier/invalidation_util.cc new file mode 100644 index 0000000..a5bc60a --- /dev/null +++ b/chrome/browser/sync/notifier/invalidation_util.cc @@ -0,0 +1,98 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/sync/notifier/invalidation_util.h" + +#include <sstream> + +namespace sync_notifier { + +void RunAndDeleteClosure(invalidation::Closure* task) { + task->Run(); + delete task; +} + +bool RealModelTypeToObjectId(syncable::ModelType model_type, + invalidation::ObjectId* object_id) { + std::string notification_type; + if (!syncable::RealModelTypeToNotificationType( + model_type, ¬ification_type)) { + return false; + } + object_id->mutable_name()->set_string_value(notification_type); + object_id->set_source(invalidation::ObjectId::CHROME_SYNC); + return true; +} + +bool ObjectIdToRealModelType(const invalidation::ObjectId& object_id, + syncable::ModelType* model_type) { + return + syncable::NotificationTypeToRealModelType( + object_id.name().string_value(), model_type); +} + +std::string ObjectIdToString( + const invalidation::ObjectId& object_id) { + std::stringstream ss; + ss << "{ "; + ss << "name: " << object_id.name().string_value() << ", "; + ss << "source: " << object_id.source(); + ss << " }"; + return ss.str(); +} + +std::string StatusToString( + const invalidation::Status& status) { + std::stringstream ss; + ss << "{ "; + ss << "code: " << status.code() << ", "; + ss << "description: " << status.description(); + ss << " }"; + return ss.str(); +} + +std::string InvalidationToString( + const invalidation::Invalidation& invalidation) { + std::stringstream ss; + ss << "{ "; + ss << "object_id: " << ObjectIdToString(invalidation.object_id()) << ", "; + ss << "version: " << invalidation.version() << ", "; + ss << "components: { "; + const invalidation::ComponentStampLog& component_stamp_log = + invalidation.component_stamp_log(); + for (int i = 0; i < component_stamp_log.stamp_size(); ++i) { + const invalidation::ComponentStamp& component_stamp = + component_stamp_log.stamp(i); + ss << "component: " << component_stamp.component() << ", "; + ss << "time: " << component_stamp.time() << ", "; + } + ss << " }"; + ss << " }"; + return ss.str(); +} + +std::string RegistrationUpdateToString( + const invalidation::RegistrationUpdate& update) { + std::stringstream ss; + ss << "{ "; + ss << "type: " << update.type() << ", "; + ss << "object_id: " << ObjectIdToString(update.object_id()) << ", "; + ss << "version: " << update.version() << ", "; + ss << "sequence_number: " << update.sequence_number(); + ss << " }"; + return ss.str(); +} + +std::string RegistrationUpdateResultToString( + const invalidation::RegistrationUpdateResult& update_result) { + std::stringstream ss; + ss << "{ "; + ss << "operation: " + << RegistrationUpdateToString(update_result.operation()) << ", "; + ss << "status: " << StatusToString(update_result.status()); + ss << " }"; + return ss.str(); +} + +} // namespace sync_notifier |