Index: chrome/browser/local_discovery/storage/privet_filesystem_operations.cc |
diff --git a/chrome/browser/local_discovery/storage/privet_filesystem_operations.cc b/chrome/browser/local_discovery/storage/privet_filesystem_operations.cc |
deleted file mode 100644 |
index 14392187f26b568a2f977794781a626b3e49b43b..0000000000000000000000000000000000000000 |
--- a/chrome/browser/local_discovery/storage/privet_filesystem_operations.cc |
+++ /dev/null |
@@ -1,288 +0,0 @@ |
-// Copyright 2014 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. |
- |
-#include "chrome/browser/local_discovery/storage/privet_filesystem_operations.h" |
- |
-#include "chrome/browser/local_discovery/storage/privet_filesystem_constants.h" |
- |
-namespace local_discovery { |
- |
-PrivetFileSystemOperationFactory::PrivetFileSystemOperationFactory( |
- content::BrowserContext* browser_context) |
- : browser_context_(browser_context), weak_factory_(this) {} |
- |
-PrivetFileSystemOperationFactory::~PrivetFileSystemOperationFactory() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- RemoveAllOperations(); |
-} |
- |
-void PrivetFileSystemOperationFactory::GetFileInfo( |
- const storage::FileSystemURL& url, |
- const storage::AsyncFileUtil::GetFileInfoCallback& callback) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- PrivetFileSystemAsyncOperation* operation = |
- new PrivetFileSystemDetailsOperation( |
- url.path(), browser_context_, this, &attribute_cache_, callback); |
- async_operations_.insert(operation); |
- operation->Start(); |
-} |
- |
-void PrivetFileSystemOperationFactory::ReadDirectory( |
- const storage::FileSystemURL& url, |
- const storage::AsyncFileUtil::ReadDirectoryCallback& callback) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- PrivetFileSystemAsyncOperation* operation = new PrivetFileSystemListOperation( |
- url.path(), browser_context_, this, &attribute_cache_, callback); |
- async_operations_.insert(operation); |
- operation->Start(); |
-} |
- |
-void PrivetFileSystemOperationFactory::RemoveOperation( |
- PrivetFileSystemAsyncOperation* operation) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- async_operations_.erase(operation); |
- delete operation; |
-} |
- |
-void PrivetFileSystemOperationFactory::RemoveAllOperations() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- STLDeleteElements(&async_operations_); |
-} |
- |
-PrivetFileSystemAsyncOperationUtil::PrivetFileSystemAsyncOperationUtil( |
- const base::FilePath& full_path, |
- content::BrowserContext* browser_context, |
- Delegate* delegate) |
- : parsed_path_(full_path), |
- browser_context_(browser_context), |
- delegate_(delegate), |
- weak_factory_(this) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
-} |
- |
-PrivetFileSystemAsyncOperationUtil::~PrivetFileSystemAsyncOperationUtil() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
-} |
- |
-void PrivetFileSystemAsyncOperationUtil::Start() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- request_context_ = browser_context_->GetRequestContext(); |
- service_discovery_client_ = ServiceDiscoverySharedClient::GetInstance(); |
- privet_device_resolver_.reset(new PrivetDeviceResolver( |
- service_discovery_client_.get(), |
- parsed_path_.service_name, |
- base::Bind( |
- &PrivetFileSystemAsyncOperationUtil::OnGotDeviceDescription, |
- base::Unretained(this)))); |
- privet_device_resolver_->Start(); |
-} |
- |
-void PrivetFileSystemAsyncOperationUtil::OnGotDeviceDescription( |
- bool success, const DeviceDescription& device_description) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- if (!success) { |
- delegate_->PrivetFileSystemResolved(NULL, parsed_path_.path); |
- return; |
- } |
- |
- privet_async_factory_ = PrivetHTTPAsynchronousFactory::CreateInstance( |
- service_discovery_client_.get(), request_context_.get()); |
- privet_http_resolution_ = privet_async_factory_->CreatePrivetHTTP( |
- parsed_path_.service_name, |
- device_description.address, |
- base::Bind(&PrivetFileSystemAsyncOperationUtil::OnGotPrivetHTTP, |
- base::Unretained(this))); |
- privet_http_resolution_->Start(); |
-} |
- |
-void PrivetFileSystemAsyncOperationUtil::OnGotPrivetHTTP( |
- scoped_ptr<PrivetHTTPClient> privet_http_client) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- privet_client_ = PrivetV1HTTPClient::CreateDefault(privet_http_client.Pass()); |
- delegate_->PrivetFileSystemResolved(privet_client_.get(), |
- parsed_path_.path); |
-} |
- |
-PrivetFileSystemListOperation::PrivetFileSystemListOperation( |
- const base::FilePath& full_path, |
- content::BrowserContext* browser_context, |
- PrivetFileSystemAsyncOperationContainer* container, |
- PrivetFileSystemAttributeCache* attribute_cache, |
- const storage::AsyncFileUtil::ReadDirectoryCallback& callback) |
- : core_(full_path, browser_context, this), |
- full_path_(full_path), |
- container_(container), |
- attribute_cache_(attribute_cache), |
- callback_(callback) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
-} |
- |
-PrivetFileSystemListOperation::~PrivetFileSystemListOperation() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
-} |
- |
-void PrivetFileSystemListOperation::Start() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- core_.Start(); |
-} |
- |
-void PrivetFileSystemListOperation::PrivetFileSystemResolved( |
- PrivetV1HTTPClient* http_client, |
- const std::string& path) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- if (!http_client) { |
- SignalError(); |
- return; |
- } |
- |
- list_operation_ = http_client->CreateStorageListOperation( |
- path, |
- base::Bind(&PrivetFileSystemListOperation::OnStorageListResult, |
- base::Unretained(this))); |
- list_operation_->Start(); |
-} |
- |
-void PrivetFileSystemListOperation::OnStorageListResult( |
- const base::DictionaryValue* value) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- list_operation_.reset(); |
- |
- if (!value) { |
- SignalError(); |
- return; |
- } |
- |
- attribute_cache_->AddFileInfoFromJSON(full_path_, value); |
- |
- storage::AsyncFileUtil::EntryList entry_list; |
- |
- const base::ListValue* entries; |
- if (!value->GetList(kPrivetListEntries, &entries)) { |
- SignalError(); |
- return; |
- } |
- |
- for (size_t i = 0; i < entries->GetSize(); i++) { |
- const base::DictionaryValue* entry_value; |
- if (!entries->GetDictionary(i, &entry_value)) { |
- SignalError(); |
- return; |
- } |
- |
- std::string name; |
- std::string type; |
- int size = 0; |
- |
- entry_value->GetString(kPrivetListKeyName, &name); |
- entry_value->GetString(kPrivetListKeyType, &type); |
- entry_value->GetInteger(kPrivetListKeySize, &size); |
- |
- storage::DirectoryEntry entry(name, |
- (type == kPrivetListTypeDir) |
- ? storage::DirectoryEntry::DIRECTORY |
- : storage::DirectoryEntry::FILE, |
- size, |
- base::Time() /* TODO(noamsml) */); |
- |
- entry_list.push_back(entry); |
- } |
- |
- TriggerCallbackAndDestroy(base::File::FILE_OK, entry_list, false); |
-} |
- |
-void PrivetFileSystemListOperation::SignalError() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- TriggerCallbackAndDestroy(base::File::FILE_ERROR_FAILED, |
- storage::AsyncFileUtil::EntryList(), |
- false); |
-} |
- |
-void PrivetFileSystemListOperation::TriggerCallbackAndDestroy( |
- base::File::Error result, |
- const storage::AsyncFileUtil::EntryList& file_list, |
- bool has_more) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(callback_, result, file_list, has_more)); |
- container_->RemoveOperation(this); |
-} |
- |
-PrivetFileSystemDetailsOperation::PrivetFileSystemDetailsOperation( |
- const base::FilePath& full_path, |
- content::BrowserContext* browser_context, |
- PrivetFileSystemAsyncOperationContainer* container, |
- PrivetFileSystemAttributeCache* attribute_cache, |
- const storage::AsyncFileUtil::GetFileInfoCallback& callback) |
- : core_(full_path, browser_context, this), |
- full_path_(full_path), |
- container_(container), |
- attribute_cache_(attribute_cache), |
- callback_(callback) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
-} |
- |
-PrivetFileSystemDetailsOperation::~PrivetFileSystemDetailsOperation() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
-} |
- |
-void PrivetFileSystemDetailsOperation::Start() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- const base::File::Info* info = attribute_cache_->GetFileInfo(full_path_); |
- if (info) { |
- TriggerCallbackAndDestroy(base::File::FILE_OK, *info); |
- return; |
- } |
- |
- core_.Start(); |
-} |
- |
-void PrivetFileSystemDetailsOperation::PrivetFileSystemResolved( |
- PrivetV1HTTPClient* http_client, |
- const std::string& path) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- if (!http_client) { |
- SignalError(); |
- return; |
- } |
- |
- list_operation_ = http_client->CreateStorageListOperation( |
- path, |
- base::Bind(&PrivetFileSystemDetailsOperation::OnStorageListResult, |
- base::Unretained(this))); |
- list_operation_->Start(); |
-} |
- |
-void PrivetFileSystemDetailsOperation::OnStorageListResult( |
- const base::DictionaryValue* value) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- list_operation_.reset(); |
- |
- attribute_cache_->AddFileInfoFromJSON(full_path_, value); |
- const base::File::Info* info = attribute_cache_->GetFileInfo(full_path_); |
- |
- if (info) { |
- TriggerCallbackAndDestroy(base::File::FILE_OK, *info); |
- } else { |
- SignalError(); |
- } |
-} |
- |
-void PrivetFileSystemDetailsOperation::SignalError() { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- TriggerCallbackAndDestroy(base::File::FILE_ERROR_FAILED, base::File::Info()); |
-} |
- |
-void PrivetFileSystemDetailsOperation::TriggerCallbackAndDestroy( |
- base::File::Error result, |
- const base::File::Info& info) { |
- DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI)); |
- content::BrowserThread::PostTask(content::BrowserThread::IO, |
- FROM_HERE, |
- base::Bind(callback_, result, info)); |
- container_->RemoveOperation(this); |
-} |
- |
-} // namespace local_discovery |