123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)// found in the LICENSE file. 423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5effb81e5f8246d0db0270817048dc992db66e9fbBen Murdoch#include "sync/internal_api/public/events/get_updates_response_event.h" 623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "base/strings/stringprintf.h" 823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)#include "sync/protocol/proto_value_conversions.h" 923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)namespace syncer { 1123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 1223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)GetUpdatesResponseEvent::GetUpdatesResponseEvent( 1323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) base::Time timestamp, 1423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) const sync_pb::ClientToServerResponse& response, 1523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) SyncerError error) 1623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) : timestamp_(timestamp), 1723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) response_(response), 1823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) error_(error) { 1923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 2023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)GetUpdatesResponseEvent::~GetUpdatesResponseEvent() {} 2223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)base::Time GetUpdatesResponseEvent::GetTimestamp() const { 2423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return timestamp_; 2523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 2623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 2723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)std::string GetUpdatesResponseEvent::GetType() const { 2823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return "GetUpdates Response"; 2923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 3023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 3123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)std::string GetUpdatesResponseEvent::GetDetails() const { 3223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) switch (error_) { 3323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) case SYNCER_OK: 3423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return base::StringPrintf("Received %d update(s).", 3523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) response_.get_updates().entries_size()); 3623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) case SERVER_MORE_TO_DOWNLOAD: 3723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return base::StringPrintf("Received %d update(s). Some updates remain.", 3823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) response_.get_updates().entries_size()); 3923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) default: 4023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return base::StringPrintf("Received error: %s", 4123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) GetSyncerErrorString(error_)); 4223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) } 4323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 4423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 4523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)scoped_ptr<base::DictionaryValue> 4623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)GetUpdatesResponseEvent::GetProtoMessage() const { 4723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return scoped_ptr<base::DictionaryValue>( 4823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) ClientToServerResponseToValue(response_, false)); 4923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 5023730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5123730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)scoped_ptr<ProtocolEvent> GetUpdatesResponseEvent::Clone() const { 5223730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) return scoped_ptr<ProtocolEvent>( 5323730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) new GetUpdatesResponseEvent( 5423730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) timestamp_, 5523730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) response_, 5623730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) error_)); 5723730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} 5823730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles) 5923730a6e56a168d1879203e4b3819bb36e3d8f1fTorne (Richard Coles)} // namespace syncer 60