123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// found in the LICENSE file. 423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "sync/internal_api/public/events/normal_get_updates_request_event.h" 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "base/strings/stringprintf.h" 823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "sync/protocol/proto_value_conversions.h" 923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "sync/sessions/nudge_tracker.h" 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace syncer { 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)NormalGetUpdatesRequestEvent::NormalGetUpdatesRequestEvent( 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) base::Time timestamp, 1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const sessions::NudgeTracker& nudge_tracker, 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const sync_pb::ClientToServerMessage& request) 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) : timestamp_(timestamp), 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) nudged_types_(nudge_tracker.GetNudgedTypes()), 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) notified_types_(nudge_tracker.GetNotifiedTypes()), 2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) refresh_requested_types_(nudge_tracker.GetRefreshRequestedTypes()), 2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) is_retry_(nudge_tracker.IsRetryRequired()), 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) request_(request) { } 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)NormalGetUpdatesRequestEvent::~NormalGetUpdatesRequestEvent() {} 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)base::Time NormalGetUpdatesRequestEvent::GetTimestamp() const { 2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return timestamp_; 2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)std::string NormalGetUpdatesRequestEvent::GetType() const { 3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return "Normal GetUpdate request"; 3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)std::string NormalGetUpdatesRequestEvent::GetDetails() const { 3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) std::string details; 3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!nudged_types_.Empty()) { 3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!details.empty()) 3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) details.append("\n"); 4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) details.append(base::StringPrintf( 4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "Nudged types: %s", 4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ModelTypeSetToString(nudged_types_).c_str())); 4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!notified_types_.Empty()) { 4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!details.empty()) 4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) details.append("\n"); 4823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) details.append(base::StringPrintf( 4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "Notified types: %s", 5023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ModelTypeSetToString(notified_types_).c_str())); 5123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 5223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!refresh_requested_types_.Empty()) { 5423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!details.empty()) 5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) details.append("\n"); 5623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) details.append(base::StringPrintf( 5723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) "Refresh requested types: %s", 5823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ModelTypeSetToString(refresh_requested_types_).c_str())); 5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 6023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (is_retry_) { 6223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) if (!details.empty()) 6323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) details.append("\n"); 6423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) details.append(base::StringPrintf("Is retry: True")); 6523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 6623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 6723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return details; 6823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 6923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 7023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)scoped_ptr<base::DictionaryValue> 7123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)NormalGetUpdatesRequestEvent::GetProtoMessage() const { 7223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return scoped_ptr<base::DictionaryValue>( 7323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ClientToServerMessageToValue(request_, false)); 7423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 7523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 7623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)scoped_ptr<ProtocolEvent> NormalGetUpdatesRequestEvent::Clone() const { 7723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return scoped_ptr<ProtocolEvent>( 7823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) new NormalGetUpdatesRequestEvent( 7923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) timestamp_, 8023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) nudged_types_, 8123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) notified_types_, 8223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) refresh_requested_types_, 8323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) is_retry_, 8423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) request_)); 8523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 8623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 8723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)NormalGetUpdatesRequestEvent::NormalGetUpdatesRequestEvent( 8823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) base::Time timestamp, 8923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ModelTypeSet nudged_types, 9023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ModelTypeSet notified_types, 9123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ModelTypeSet refresh_requested_types, 9223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) bool is_retry, 9323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) sync_pb::ClientToServerMessage request) 9423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) : timestamp_(timestamp), 9523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) nudged_types_(nudged_types), 9623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) notified_types_(notified_types), 9723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) refresh_requested_types_(refresh_requested_types), 9823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) is_retry_(is_retry), 9923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) request_(request) {} 10023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 10123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace 102