Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / sync / internal_api / internal_components_factory_impl.cc
index e764a16..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;
@@ -59,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