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
11 namespace syncer {
12
NormalGetUpdatesRequestEvent(base::Time timestamp,const sessions::NudgeTracker & nudge_tracker,const sync_pb::ClientToServerMessage & request)13 NormalGetUpdatesRequestEvent::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
~NormalGetUpdatesRequestEvent()24 NormalGetUpdatesRequestEvent::~NormalGetUpdatesRequestEvent() {}
25
GetTimestamp() const26 base::Time NormalGetUpdatesRequestEvent::GetTimestamp() const {
27 return timestamp_;
28 }
29
GetType() const30 std::string NormalGetUpdatesRequestEvent::GetType() const {
31 return "Normal GetUpdate request";
32 }
33
GetDetails() const34 std::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
70 scoped_ptr<base::DictionaryValue>
GetProtoMessage() const71 NormalGetUpdatesRequestEvent::GetProtoMessage() const {
72 return scoped_ptr<base::DictionaryValue>(
73 ClientToServerMessageToValue(request_, false));
74 }
75
Clone() const76 scoped_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
NormalGetUpdatesRequestEvent(base::Time timestamp,ModelTypeSet nudged_types,ModelTypeSet notified_types,ModelTypeSet refresh_requested_types,bool is_retry,sync_pb::ClientToServerMessage request)87 NormalGetUpdatesRequestEvent::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