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/commit_response_event.h"
6
7#include "base/strings/stringprintf.h"
8#include "sync/protocol/proto_value_conversions.h"
9
10namespace syncer {
11
12CommitResponseEvent::CommitResponseEvent(
13    base::Time timestamp,
14    SyncerError result,
15    const sync_pb::ClientToServerResponse& response)
16  : timestamp_(timestamp),
17    result_(result),
18    response_(response) {}
19
20CommitResponseEvent::~CommitResponseEvent() {}
21
22base::Time CommitResponseEvent::GetTimestamp() const {
23  return timestamp_;
24}
25
26std::string CommitResponseEvent::GetType() const {
27  return "Commit Response";
28}
29
30std::string CommitResponseEvent::GetDetails() const {
31  return base::StringPrintf("Result: %s", GetSyncerErrorString(result_));
32}
33
34scoped_ptr<base::DictionaryValue> CommitResponseEvent::GetProtoMessage() const {
35  return scoped_ptr<base::DictionaryValue>(
36      ClientToServerResponseToValue(response_, false));
37}
38
39scoped_ptr<ProtocolEvent> CommitResponseEvent::Clone() const {
40  return scoped_ptr<ProtocolEvent>(
41      new CommitResponseEvent(
42          timestamp_,
43          result_,
44          response_));
45}
46
47}  // namespace syncer
48