| Index: chrome/browser/sync/sessions/sync_session_context.h
|
| diff --git a/chrome/browser/sync/sessions/sync_session_context.h b/chrome/browser/sync/sessions/sync_session_context.h
|
| deleted file mode 100644
|
| index e911776b0f178c0f4ac0d54ea52b6363efcfd48e..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/sync/sessions/sync_session_context.h
|
| +++ /dev/null
|
| @@ -1,208 +0,0 @@
|
| -// 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.
|
| -
|
| -// SyncSessionContext encapsulates the contextual information and engine
|
| -// components specific to a SyncSession. A context is accessible via
|
| -// a SyncSession so that session SyncerCommands and parts of the engine have
|
| -// a convenient way to access other parts. In this way it can be thought of as
|
| -// the surrounding environment for the SyncSession. The components of this
|
| -// environment are either valid or not valid for the entire context lifetime,
|
| -// or they are valid for explicitly scoped periods of time by using Scoped
|
| -// installation utilities found below. This means that the context assumes no
|
| -// ownership whatsoever of any object that was not created by the context
|
| -// itself.
|
| -//
|
| -// It can only be used from the SyncerThread.
|
| -
|
| -#ifndef CHROME_BROWSER_SYNC_SESSIONS_SYNC_SESSION_CONTEXT_H_
|
| -#define CHROME_BROWSER_SYNC_SESSIONS_SYNC_SESSION_CONTEXT_H_
|
| -#pragma once
|
| -
|
| -#include <map>
|
| -#include <string>
|
| -
|
| -#include "base/gtest_prod_util.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "base/time.h"
|
| -#include "chrome/browser/sync/engine/model_safe_worker.h"
|
| -#include "chrome/browser/sync/engine/syncer_types.h"
|
| -#include "chrome/browser/sync/sessions/debug_info_getter.h"
|
| -
|
| -namespace syncable {
|
| -class Directory;
|
| -}
|
| -
|
| -namespace browser_sync {
|
| -
|
| -class ConflictResolver;
|
| -class ExtensionsActivityMonitor;
|
| -class ModelSafeWorkerRegistrar;
|
| -class ServerConnectionManager;
|
| -
|
| -// Default number of items a client can commit in a single message.
|
| -static const int kDefaultMaxCommitBatchSize = 25;
|
| -
|
| -namespace sessions {
|
| -class ScopedSessionContextConflictResolver;
|
| -struct SyncSessionSnapshot;
|
| -class TestScopedSessionEventListener;
|
| -
|
| -class SyncSessionContext {
|
| - public:
|
| - SyncSessionContext(ServerConnectionManager* connection_manager,
|
| - syncable::Directory* directory,
|
| - ModelSafeWorkerRegistrar* model_safe_worker_registrar,
|
| - ExtensionsActivityMonitor* extensions_activity_monitor,
|
| - const std::vector<SyncEngineEventListener*>& listeners,
|
| - DebugInfoGetter* debug_info_getter);
|
| -
|
| - // Empty constructor for unit tests.
|
| - SyncSessionContext();
|
| - virtual ~SyncSessionContext();
|
| -
|
| - ConflictResolver* resolver() { return resolver_; }
|
| - ServerConnectionManager* connection_manager() {
|
| - return connection_manager_;
|
| - }
|
| - syncable::Directory* directory() {
|
| - return directory_;
|
| - }
|
| -
|
| - ModelSafeWorkerRegistrar* registrar() {
|
| - return registrar_;
|
| - }
|
| - ExtensionsActivityMonitor* extensions_monitor() {
|
| - return extensions_activity_monitor_;
|
| - }
|
| -
|
| - DebugInfoGetter* debug_info_getter() {
|
| - return debug_info_getter_;
|
| - }
|
| -
|
| - // Talk notification status.
|
| - void set_notifications_enabled(bool enabled) {
|
| - notifications_enabled_ = enabled;
|
| - }
|
| - bool notifications_enabled() { return notifications_enabled_; }
|
| -
|
| - // Account name, set once a directory has been opened.
|
| - void set_account_name(const std::string name) {
|
| - DCHECK(account_name_.empty());
|
| - account_name_ = name;
|
| - }
|
| - const std::string& account_name() const { return account_name_; }
|
| -
|
| - void set_max_commit_batch_size(int batch_size) {
|
| - max_commit_batch_size_ = batch_size;
|
| - }
|
| - int32 max_commit_batch_size() const { return max_commit_batch_size_; }
|
| -
|
| - const ModelSafeRoutingInfo& previous_session_routing_info() const {
|
| - return previous_session_routing_info_;
|
| - }
|
| -
|
| - void set_previous_session_routing_info(const ModelSafeRoutingInfo& info) {
|
| - previous_session_routing_info_ = info;
|
| - }
|
| -
|
| - void NotifyListeners(const SyncEngineEvent& event) {
|
| - FOR_EACH_OBSERVER(SyncEngineEventListener, listeners_,
|
| - OnSyncEngineEvent(event));
|
| - }
|
| -
|
| - // This is virtual for unit tests.
|
| - virtual void SetUnthrottleTime(syncable::ModelTypeSet types,
|
| - const base::TimeTicks& time);
|
| -
|
| - // This prunes the |unthrottle_time_| map based on the |time| passed in. This
|
| - // is called by syncer at the SYNCER_BEGIN stage.
|
| - void PruneUnthrottledTypes(const base::TimeTicks& time);
|
| -
|
| - // This returns the list of currently throttled types. Unless server returns
|
| - // new throttled types this will remain constant through out the sync cycle.
|
| - syncable::ModelTypeSet GetThrottledTypes() const;
|
| -
|
| - private:
|
| - typedef std::map<syncable::ModelType, base::TimeTicks> UnthrottleTimes;
|
| -
|
| - FRIEND_TEST_ALL_PREFIXES(SyncSessionContextTest, AddUnthrottleTimeTest);
|
| - FRIEND_TEST_ALL_PREFIXES(SyncSessionContextTest,
|
| - GetCurrentlyThrottledTypesTest);
|
| -
|
| - // Rather than force clients to set and null-out various context members, we
|
| - // extend our encapsulation boundary to scoped helpers that take care of this
|
| - // once they are allocated. See definitions of these below.
|
| - friend class ScopedSessionContextConflictResolver;
|
| - friend class TestScopedSessionEventListener;
|
| -
|
| - // This is installed by Syncer objects when needed and may be NULL.
|
| - ConflictResolver* resolver_;
|
| -
|
| - ObserverList<SyncEngineEventListener> listeners_;
|
| -
|
| - ServerConnectionManager* const connection_manager_;
|
| - syncable::Directory* const directory_;
|
| -
|
| - // A registrar of workers capable of processing work closures on a thread
|
| - // that is guaranteed to be safe for model modifications.
|
| - ModelSafeWorkerRegistrar* registrar_;
|
| -
|
| - // We use this to stuff extensions activity into CommitMessages so the server
|
| - // can correlate commit traffic with extension-related bookmark mutations.
|
| - ExtensionsActivityMonitor* extensions_activity_monitor_;
|
| -
|
| - // Kept up to date with talk events to determine whether notifications are
|
| - // enabled. True only if the notification channel is authorized and open.
|
| - bool notifications_enabled_;
|
| -
|
| - // The name of the account being synced.
|
| - std::string account_name_;
|
| -
|
| - // The server limits the number of items a client can commit in one batch.
|
| - int max_commit_batch_size_;
|
| -
|
| - // Some routing info history to help us clean up types that get disabled
|
| - // by the user.
|
| - ModelSafeRoutingInfo previous_session_routing_info_;
|
| -
|
| - // Cache of last session snapshot information.
|
| - scoped_ptr<sessions::SyncSessionSnapshot> previous_session_snapshot_;
|
| -
|
| - // We use this to get debug info to send to the server for debugging
|
| - // client behavior on server side.
|
| - DebugInfoGetter* const debug_info_getter_;
|
| -
|
| - // This is a map from throttled data types to the time at which they can be
|
| - // unthrottled.
|
| - UnthrottleTimes unthrottle_times_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(SyncSessionContext);
|
| -};
|
| -
|
| -// Installs a ConflictResolver to a given session context for the lifetime of
|
| -// the ScopedSessionContextConflictResolver. There should never be more than
|
| -// one ConflictResolver in the system, so it is an error to use this if the
|
| -// context already has a resolver.
|
| -class ScopedSessionContextConflictResolver {
|
| - public:
|
| - // Note: |context| and |resolver| should outlive |this|.
|
| - ScopedSessionContextConflictResolver(SyncSessionContext* context,
|
| - ConflictResolver* resolver)
|
| - : context_(context), resolver_(resolver) {
|
| - DCHECK(NULL == context->resolver_);
|
| - context->resolver_ = resolver;
|
| - }
|
| - ~ScopedSessionContextConflictResolver() {
|
| - context_->resolver_ = NULL;
|
| - }
|
| - private:
|
| - SyncSessionContext* context_;
|
| - ConflictResolver* resolver_;
|
| - DISALLOW_COPY_AND_ASSIGN(ScopedSessionContextConflictResolver);
|
| -};
|
| -
|
| -} // namespace sessions
|
| -} // namespace browser_sync
|
| -
|
| -#endif // CHROME_BROWSER_SYNC_SESSIONS_SYNC_SESSION_CONTEXT_H_
|
|
|