1 // Copyright (c) 2012 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 #include "sync/sessions/sync_session_context.h"
6
7 #include "sync/sessions/debug_info_getter.h"
8 #include "sync/util/extensions_activity.h"
9
10 namespace syncer {
11 namespace sessions {
12
SyncSessionContext(ServerConnectionManager * connection_manager,syncable::Directory * directory,ExtensionsActivity * extensions_activity,const std::vector<SyncEngineEventListener * > & listeners,DebugInfoGetter * debug_info_getter,ModelTypeRegistry * model_type_registry,bool keystore_encryption_enabled,bool client_enabled_pre_commit_update_avoidance,const std::string & invalidator_client_id)13 SyncSessionContext::SyncSessionContext(
14 ServerConnectionManager* connection_manager,
15 syncable::Directory* directory,
16 ExtensionsActivity* extensions_activity,
17 const std::vector<SyncEngineEventListener*>& listeners,
18 DebugInfoGetter* debug_info_getter,
19 ModelTypeRegistry* model_type_registry,
20 bool keystore_encryption_enabled,
21 bool client_enabled_pre_commit_update_avoidance,
22 const std::string& invalidator_client_id)
23 : connection_manager_(connection_manager),
24 directory_(directory),
25 extensions_activity_(extensions_activity),
26 notifications_enabled_(false),
27 max_commit_batch_size_(kDefaultMaxCommitBatchSize),
28 debug_info_getter_(debug_info_getter),
29 model_type_registry_(model_type_registry),
30 keystore_encryption_enabled_(keystore_encryption_enabled),
31 invalidator_client_id_(invalidator_client_id),
32 server_enabled_pre_commit_update_avoidance_(false),
33 client_enabled_pre_commit_update_avoidance_(
34 client_enabled_pre_commit_update_avoidance) {
35 std::vector<SyncEngineEventListener*>::const_iterator it;
36 for (it = listeners.begin(); it != listeners.end(); ++it)
37 listeners_.AddObserver(*it);
38 }
39
~SyncSessionContext()40 SyncSessionContext::~SyncSessionContext() {
41 }
42
GetEnabledTypes() const43 ModelTypeSet SyncSessionContext::GetEnabledTypes() const {
44 return model_type_registry_->GetEnabledTypes();
45 }
46
SetRoutingInfo(const ModelSafeRoutingInfo & routing_info)47 void SyncSessionContext::SetRoutingInfo(
48 const ModelSafeRoutingInfo& routing_info) {
49 model_type_registry_->SetEnabledDirectoryTypes(routing_info);
50 }
51
52 } // namespace sessions
53 } // namespace syncer
54