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/internal_api/public/events/normal_get_updates_request_event.h" 6 7#include "base/strings/stringprintf.h" 8#include "sync/protocol/proto_value_conversions.h" 9#include "sync/sessions/nudge_tracker.h" 10 11namespace syncer { 12 13NormalGetUpdatesRequestEvent::NormalGetUpdatesRequestEvent( 14 base::Time timestamp, 15 const sessions::NudgeTracker& nudge_tracker, 16 const sync_pb::ClientToServerMessage& request) 17 : timestamp_(timestamp), 18 nudged_types_(nudge_tracker.GetNudgedTypes()), 19 notified_types_(nudge_tracker.GetNotifiedTypes()), 20 refresh_requested_types_(nudge_tracker.GetRefreshRequestedTypes()), 21 is_retry_(nudge_tracker.IsRetryRequired()), 22 request_(request) { } 23 24NormalGetUpdatesRequestEvent::~NormalGetUpdatesRequestEvent() {} 25 26base::Time NormalGetUpdatesRequestEvent::GetTimestamp() const { 27 return timestamp_; 28} 29 30std::string NormalGetUpdatesRequestEvent::GetType() const { 31 return "Normal GetUpdate request"; 32} 33 34std::string NormalGetUpdatesRequestEvent::GetDetails() const { 35 std::string details; 36 37 if (!nudged_types_.Empty()) { 38 if (!details.empty()) 39 details.append("\n"); 40 details.append(base::StringPrintf( 41 "Nudged types: %s", 42 ModelTypeSetToString(nudged_types_).c_str())); 43 } 44 45 if (!notified_types_.Empty()) { 46 if (!details.empty()) 47 details.append("\n"); 48 details.append(base::StringPrintf( 49 "Notified types: %s", 50 ModelTypeSetToString(notified_types_).c_str())); 51 } 52 53 if (!refresh_requested_types_.Empty()) { 54 if (!details.empty()) 55 details.append("\n"); 56 details.append(base::StringPrintf( 57 "Refresh requested types: %s", 58 ModelTypeSetToString(refresh_requested_types_).c_str())); 59 } 60 61 if (is_retry_) { 62 if (!details.empty()) 63 details.append("\n"); 64 details.append(base::StringPrintf("Is retry: True")); 65 } 66 67 return details; 68} 69 70scoped_ptr<base::DictionaryValue> 71NormalGetUpdatesRequestEvent::GetProtoMessage() const { 72 return scoped_ptr<base::DictionaryValue>( 73 ClientToServerMessageToValue(request_, false)); 74} 75 76scoped_ptr<ProtocolEvent> NormalGetUpdatesRequestEvent::Clone() const { 77 return scoped_ptr<ProtocolEvent>( 78 new NormalGetUpdatesRequestEvent( 79 timestamp_, 80 nudged_types_, 81 notified_types_, 82 refresh_requested_types_, 83 is_retry_, 84 request_)); 85} 86 87NormalGetUpdatesRequestEvent::NormalGetUpdatesRequestEvent( 88 base::Time timestamp, 89 ModelTypeSet nudged_types, 90 ModelTypeSet notified_types, 91 ModelTypeSet refresh_requested_types, 92 bool is_retry, 93 sync_pb::ClientToServerMessage request) 94 : timestamp_(timestamp), 95 nudged_types_(nudged_types), 96 notified_types_(notified_types), 97 refresh_requested_types_(refresh_requested_types), 98 is_retry_(is_retry), 99 request_(request) {} 100 101} // namespace 102