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 18 namespace syncer { 19 20 // An event representing a commit response event from the server. 21 class 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