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#ifndef SYNC_INTERNAL_API_EVENTS_COMMIT_RESPONSE_EVENT_H_ 6#define SYNC_INTERNAL_API_EVENTS_COMMIT_RESPONSE_EVENT_H_ 7 8#include <cstddef> 9 10#include "base/memory/scoped_ptr.h" 11#include "base/time/time.h" 12#include "base/values.h" 13#include "sync/base/sync_export.h" 14#include "sync/internal_api/public/events/protocol_event.h" 15#include "sync/internal_api/public/util/syncer_error.h" 16#include "sync/protocol/sync.pb.h" 17 18namespace syncer { 19 20// An event representing a commit response event from the server. 21class SYNC_EXPORT_PRIVATE CommitResponseEvent : public ProtocolEvent { 22 public: 23 CommitResponseEvent( 24 base::Time timestamp, 25 SyncerError result, 26 const sync_pb::ClientToServerResponse& response); 27 virtual ~CommitResponseEvent(); 28 29 virtual base::Time GetTimestamp() const OVERRIDE; 30 virtual std::string GetType() const OVERRIDE; 31 virtual std::string GetDetails() const OVERRIDE; 32 virtual scoped_ptr<base::DictionaryValue> GetProtoMessage() const OVERRIDE; 33 virtual scoped_ptr<ProtocolEvent> Clone() const OVERRIDE; 34 35 static scoped_ptr<base::DictionaryValue> ToValue( 36 const ProtocolEvent& event); 37 38 private: 39 const base::Time timestamp_; 40 const SyncerError result_; 41 const sync_pb::ClientToServerResponse response_; 42 43 DISALLOW_COPY_AND_ASSIGN(CommitResponseEvent); 44}; 45 46} // namespace syncer 47 48#endif // SYNC_INTERNAL_API_EVENTS_COMMIT_RESPONSE_EVENT_H_ 49