diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-15 09:35:42 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-03-15 09:35:42 +0000 |
commit | c1c32c85357f14756247b04b8b5ae41b05bf2e16 (patch) | |
tree | 58f25f64e1fa592e8daf276ef69901cd2218f929 /sync/util/extensions_activity_monitor.h | |
parent | 63ee33bde2ec8471a70f0f0ec6a1962dd07fc8ab (diff) | |
download | chromium_src-c1c32c85357f14756247b04b8b5ae41b05bf2e16.zip chromium_src-c1c32c85357f14756247b04b8b5ae41b05bf2e16.tar.gz chromium_src-c1c32c85357f14756247b04b8b5ae41b05bf2e16.tar.bz2 |
[Sync] Move 'sync' target to sync/
Also move related test files.
Move WriteNode::UpdateEntryWithEncryption to nigori_util.h.
Clean up defines and dependencies. In particular, get rid of SYNC_ENGINE_VERSION_STRING and hard-code the string in the single place it's used.
Rename data_encryption.* to data_encryption_win.* and add a pragma for crypt32.lib.
Clean up exit-time constructor warnings in sync{able,er}_unittest.cc.
Remove some unused files.
BUG=117585
TEST=
TBR=jhawkins@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9699057
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126872 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'sync/util/extensions_activity_monitor.h')
-rw-r--r-- | sync/util/extensions_activity_monitor.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sync/util/extensions_activity_monitor.h b/sync/util/extensions_activity_monitor.h new file mode 100644 index 0000000..9a5fdef --- /dev/null +++ b/sync/util/extensions_activity_monitor.h @@ -0,0 +1,53 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef SYNC_UTIL_EXTENSIONS_ACTIVITY_MONITOR_H_ +#define SYNC_UTIL_EXTENSIONS_ACTIVITY_MONITOR_H_ +#pragma once + +#include <map> +#include <string> + +#include "base/basictypes.h" + +namespace browser_sync { + +// An interface to monitor usage of extensions APIs to send to sync +// servers, with the ability to purge data once sync servers have +// acknowledged it (successful commit response). +// +// All abstract methods are called from the sync thread. +class ExtensionsActivityMonitor { + public: + // A data record of activity performed by extension |extension_id|. + struct Record { + Record(); + ~Record(); + + // The human-readable ID identifying the extension responsible + // for the activity reported in this Record. + std::string extension_id; + + // How many times the extension successfully invoked a write + // operation through the bookmarks API since the last CommitMessage. + uint32 bookmark_write_count; + }; + + typedef std::map<std::string, Record> Records; + + // Fill |buffer| with all current records and then clear the + // internal records. + virtual void GetAndClearRecords(Records* buffer) = 0; + + // Merge |records| with the current set of records, adding the + // bookmark write counts for common Records. + virtual void PutRecords(const Records& records) = 0; + + protected: + virtual ~ExtensionsActivityMonitor(); +}; + +} // namespace browser_sync + +#endif // SYNC_UTIL_EXTENSIONS_ACTIVITY_MONITOR_H_ |