| // Copyright 2014 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "components/sync/engine/events/commit_request_event.h" |
| |
| #include <stddef.h> |
| |
| #include "base/format_macros.h" |
| #include "base/strings/stringprintf.h" |
| #include "base/values.h" |
| #include "components/sync/protocol/proto_value_conversions.h" |
| |
| namespace syncer { |
| |
| CommitRequestEvent::CommitRequestEvent( |
| base::Time timestamp, |
| size_t num_items, |
| ModelTypeSet contributing_types, |
| const sync_pb::ClientToServerMessage& request) |
| : timestamp_(timestamp), |
| num_items_(num_items), |
| contributing_types_(contributing_types), |
| request_(request) {} |
| |
| CommitRequestEvent::~CommitRequestEvent() = default; |
| |
| std::unique_ptr<ProtocolEvent> CommitRequestEvent::Clone() const { |
| return std::make_unique<CommitRequestEvent>(timestamp_, num_items_, |
| contributing_types_, request_); |
| } |
| |
| base::Time CommitRequestEvent::GetTimestamp() const { |
| return timestamp_; |
| } |
| |
| std::string CommitRequestEvent::GetType() const { |
| return "Commit Request"; |
| } |
| |
| std::string CommitRequestEvent::GetDetails() const { |
| return base::StringPrintf( |
| "Item count: %" PRIuS |
| "\n" |
| "Contributing types: %s", |
| num_items_, ModelTypeSetToDebugString(contributing_types_).c_str()); |
| } |
| |
| base::Value::Dict CommitRequestEvent::GetProtoMessage( |
| bool include_specifics) const { |
| return ClientToServerMessageToValue( |
| request_, {.include_specifics = include_specifics, |
| .include_full_get_update_triggers = false}) |
| .TakeDict(); |
| } |
| |
| } // namespace syncer |