Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / sync / internal_api / internal_components_factory_impl.cc
index 6ccb143..dbc4243 100644 (file)
@@ -8,6 +8,7 @@
 #include "sync/engine/syncer.h"
 #include "sync/engine/sync_scheduler_impl.h"
 #include "sync/sessions/sync_session_context.h"
+#include "sync/syncable/deferred_on_disk_directory_backing_store.h"
 #include "sync/syncable/on_disk_directory_backing_store.h"
 
 using base::TimeDelta;
@@ -41,17 +42,16 @@ scoped_ptr<sessions::SyncSessionContext>
 InternalComponentsFactoryImpl::BuildContext(
     ServerConnectionManager* connection_manager,
     syncable::Directory* directory,
-    const std::vector<ModelSafeWorker*>& workers,
     ExtensionsActivity* extensions_activity,
     const std::vector<SyncEngineEventListener*>& listeners,
     sessions::DebugInfoGetter* debug_info_getter,
-    TrafficRecorder* traffic_recorder,
+    ModelTypeRegistry* model_type_registry,
     const std::string& invalidation_client_id) {
   return scoped_ptr<sessions::SyncSessionContext>(
       new sessions::SyncSessionContext(
-          connection_manager, directory, workers, extensions_activity,
+          connection_manager, directory, extensions_activity,
           listeners, debug_info_getter,
-          traffic_recorder,
+          model_type_registry,
           switches_.encryption_method == ENCRYPTION_KEYSTORE,
           switches_.pre_commit_updates_policy ==
               FORCE_ENABLE_PRE_COMMIT_UPDATE_AVOIDANCE,
@@ -60,9 +60,19 @@ InternalComponentsFactoryImpl::BuildContext(
 
 scoped_ptr<syncable::DirectoryBackingStore>
 InternalComponentsFactoryImpl::BuildDirectoryBackingStore(
-      const std::string& dir_name, const base::FilePath& backing_filepath) {
-  return scoped_ptr<syncable::DirectoryBackingStore>(
-      new syncable::OnDiskDirectoryBackingStore(dir_name, backing_filepath));
+    StorageOption storage, const std::string& dir_name,
+    const base::FilePath& backing_filepath) {
+  if (storage == STORAGE_ON_DISK) {
+    return scoped_ptr<syncable::DirectoryBackingStore>(
+        new syncable::OnDiskDirectoryBackingStore(dir_name, backing_filepath));
+  } else if (storage == STORAGE_ON_DISK_DEFERRED) {
+    return scoped_ptr<syncable::DirectoryBackingStore>(
+        new syncable::DeferredOnDiskDirectoryBackingStore(dir_name,
+                                                          backing_filepath));
+  } else {
+    NOTREACHED();
+    return scoped_ptr<syncable::DirectoryBackingStore>();
+  }
 }
 
 InternalComponentsFactory::Switches