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_REQUEST_EVENT_H 6 #define SYNC_INTERNAL_API_EVENTS_COMMIT_REQUEST_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/base/model_type.h" 15 #include "sync/internal_api/public/events/protocol_event.h" 16 #include "sync/protocol/sync.pb.h" 17 18 namespace syncer { 19 20 // An event representing a commit request message sent to the server. 21 class SYNC_EXPORT_PRIVATE CommitRequestEvent : public ProtocolEvent { 22 public: 23 CommitRequestEvent( 24 base::Time timestamp, 25 size_t num_items, 26 ModelTypeSet contributing_types, 27 const sync_pb::ClientToServerMessage& request); 28 virtual ~CommitRequestEvent(); 29 30 virtual base::Time GetTimestamp() const OVERRIDE; 31 virtual std::string GetType() const OVERRIDE; 32 virtual std::string GetDetails() const OVERRIDE; 33 virtual scoped_ptr<base::DictionaryValue> GetProtoMessage() const OVERRIDE; 34 virtual scoped_ptr<ProtocolEvent> Clone() const OVERRIDE; 35 36 static scoped_ptr<base::DictionaryValue> ToValue( 37 const ProtocolEvent& event); 38 39 private: 40 const base::Time timestamp_; 41 const size_t num_items_; 42 const ModelTypeSet contributing_types_; 43 const sync_pb::ClientToServerMessage request_; 44 45 DISALLOW_COPY_AND_ASSIGN(CommitRequestEvent); 46 }; 47 48 } // namespace syncer 49 50 #endif // SYNC_INTERNAL_API_EVENTS_COMMIT_REQUEST_EVENT_H 51