1a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)// found in the LICENSE file. 4a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 5a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)#include "sync/util/extensions_activity.h" 6a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 7a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)namespace syncer { 8a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 9a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)ExtensionsActivity::Record::Record() 10a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) : bookmark_write_count(0U) {} 11a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 12a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)ExtensionsActivity::Record::~Record() {} 13a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 14a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)ExtensionsActivity::ExtensionsActivity() {} 15a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 16a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)ExtensionsActivity::~ExtensionsActivity() {} 17a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 18a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void ExtensionsActivity::GetAndClearRecords(Records* buffer) { 19a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) base::AutoLock lock(records_lock_); 20a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) buffer->clear(); 21a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) buffer->swap(records_); 22a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 23a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 24a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void ExtensionsActivity::PutRecords(const Records& records) { 25a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) base::AutoLock lock(records_lock_); 26a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) for (Records::const_iterator i = records.begin(); i != records.end(); ++i) { 27a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) records_[i->first].extension_id = i->second.extension_id; 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) records_[i->first].bookmark_write_count += i->second.bookmark_write_count; 29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) } 30a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 31a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 32a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)void ExtensionsActivity::UpdateRecord(const std::string& extension_id) { 33a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) base::AutoLock lock(records_lock_); 34a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) Record& record = records_[extension_id]; 35a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) record.extension_id = extension_id; 36a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) record.bookmark_write_count++; 37a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} 38a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) 39a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles)} // namespace syncer 40