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