Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(650)

Unified Diff: chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc

Issue 513683002: [fsp] Add support for providing thumbnails. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use scoped_ptr for EntryMetadata. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc
diff --git a/chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc b/chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc
index 70f1aa39bb261fdc67d4a318d0baafc598cb6851..ea08d8b962c4e6c88490697c609e581ce6f6c531 100644
--- a/chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc
+++ b/chrome/browser/chromeos/file_system_provider/fake_provided_file_system.cc
@@ -23,6 +23,17 @@ const char kFakeFileMimeType[] = "text/plain";
const char kFakeFilePath[] = "/hello.txt";
+FakeEntry::FakeEntry() {
+}
+
+FakeEntry::FakeEntry(scoped_ptr<EntryMetadata> metadata,
+ const std::string& contents)
+ : metadata(metadata.Pass()), contents(contents) {
+}
+
+FakeEntry::~FakeEntry() {
+}
+
FakeProvidedFileSystem::FakeProvidedFileSystem(
const ProvidedFileSystemInfo& file_system_info)
: file_system_info_(file_system_info),
@@ -52,25 +63,25 @@ void FakeProvidedFileSystem::AddEntry(const base::FilePath& entry_path,
std::string mime_type,
std::string contents) {
DCHECK(entries_.find(entry_path) == entries_.end());
- EntryMetadata metadata;
+ scoped_ptr<EntryMetadata> metadata(new EntryMetadata);
- metadata.is_directory = is_directory;
- metadata.name = name;
- metadata.size = size;
- metadata.modification_time = modification_time;
- metadata.mime_type = mime_type;
+ metadata->is_directory = is_directory;
+ metadata->name = name;
+ metadata->size = size;
+ metadata->modification_time = modification_time;
+ metadata->mime_type = mime_type;
- entries_[entry_path] = FakeEntry(metadata, contents);
+ entries_[entry_path] =
+ make_linked_ptr(new FakeEntry(metadata.Pass(), contents));
}
-bool FakeProvidedFileSystem::GetEntry(const base::FilePath& entry_path,
- FakeEntry* fake_entry) const {
+const FakeEntry* FakeProvidedFileSystem::GetEntry(
+ const base::FilePath& entry_path) const {
const Entries::const_iterator entry_it = entries_.find(entry_path);
if (entry_it == entries_.end())
- return false;
+ return NULL;
- *fake_entry = entry_it->second;
- return true;
+ return entry_it->second.get();
}
ProvidedFileSystemInterface::AbortCallback
@@ -81,16 +92,27 @@ FakeProvidedFileSystem::RequestUnmount(
ProvidedFileSystemInterface::AbortCallback FakeProvidedFileSystem::GetMetadata(
const base::FilePath& entry_path,
+ ProvidedFileSystemInterface::MetadataFieldMask fields,
const ProvidedFileSystemInterface::GetMetadataCallback& callback) {
const Entries::const_iterator entry_it = entries_.find(entry_path);
if (entry_it == entries_.end()) {
- return PostAbortableTask(base::Bind(
- callback, EntryMetadata(), base::File::FILE_ERROR_NOT_FOUND));
+ return PostAbortableTask(
+ base::Bind(callback,
+ base::Passed(make_scoped_ptr<EntryMetadata>(NULL)),
+ base::File::FILE_ERROR_NOT_FOUND));
}
+ scoped_ptr<EntryMetadata> metadata(new EntryMetadata);
+ metadata->is_directory = entry_it->second->metadata->is_directory;
+ metadata->name = entry_it->second->metadata->name;
+ metadata->size = entry_it->second->metadata->size;
+ metadata->modification_time = entry_it->second->metadata->modification_time;
+ metadata->mime_type = entry_it->second->metadata->mime_type;
+ metadata->thumbnail = entry_it->second->metadata->thumbnail;
+
return PostAbortableTask(
- base::Bind(callback, entry_it->second.metadata, base::File::FILE_OK));
+ base::Bind(callback, base::Passed(&metadata), base::File::FILE_OK));
}
ProvidedFileSystemInterface::AbortCallback
@@ -103,13 +125,13 @@ FakeProvidedFileSystem::ReadDirectory(
++it) {
const base::FilePath file_path = it->first;
if (file_path == directory_path || directory_path.IsParent(file_path)) {
- const EntryMetadata& metadata = it->second.metadata;
+ scoped_ptr<EntryMetadata>& metadata = it->second->metadata;
hirono 2014/08/29 06:02:41 const scoped_ptr<EntryMetadta>& ? or just EntryMet
mtomasz 2014/08/29 06:17:48 Done.
entry_list.push_back(storage::DirectoryEntry(
- metadata.name,
- metadata.is_directory ? storage::DirectoryEntry::DIRECTORY
- : storage::DirectoryEntry::FILE,
- metadata.size,
- metadata.modification_time));
+ metadata->name,
+ metadata->is_directory ? storage::DirectoryEntry::DIRECTORY
+ : storage::DirectoryEntry::FILE,
+ metadata->size,
+ metadata->modification_time));
}
}
@@ -182,19 +204,19 @@ ProvidedFileSystemInterface::AbortCallback FakeProvidedFileSystem::ReadFile(
int current_length = length;
// Reading behind EOF is fine, it will just return 0 bytes.
- if (current_offset >= entry_it->second.metadata.size || !current_length) {
+ if (current_offset >= entry_it->second->metadata->size || !current_length) {
return PostAbortableTask(base::Bind(callback,
0 /* chunk_length */,
false /* has_more */,
base::File::FILE_OK));
}
- const FakeEntry& entry = entry_it->second;
+ const FakeEntry* const entry = entry_it->second.get();
std::vector<int> task_ids;
- while (current_offset < entry.metadata.size && current_length) {
- buffer->data()[current_offset - offset] = entry.contents[current_offset];
+ while (current_offset < entry->metadata->size && current_length) {
+ buffer->data()[current_offset - offset] = entry->contents[current_offset];
const bool has_more =
- (current_offset + 1 < entry.metadata.size) && (current_length - 1);
+ (current_offset + 1 < entry->metadata->size) && (current_length - 1);
const int task_id = tracker_.PostTask(
base::MessageLoopProxy::current(),
FROM_HERE,
@@ -283,16 +305,16 @@ ProvidedFileSystemInterface::AbortCallback FakeProvidedFileSystem::WriteFile(
base::Bind(callback, base::File::FILE_ERROR_INVALID_OPERATION));
}
- FakeEntry* const entry = &entry_it->second;
- if (offset > entry->metadata.size) {
+ FakeEntry* const entry = entry_it->second.get();
+ if (offset > entry->metadata->size) {
return PostAbortableTask(
base::Bind(callback, base::File::FILE_ERROR_INVALID_OPERATION));
}
// Allocate the string size in advance.
- if (offset + length > entry->metadata.size) {
- entry->metadata.size = offset + length;
- entry->contents.resize(entry->metadata.size);
+ if (offset + length > entry->metadata->size) {
+ entry->metadata->size = offset + length;
+ entry->contents.resize(entry->metadata->size);
}
entry->contents.replace(offset, length, buffer->data(), length);

Powered by Google App Engine
This is Rietveld 408576698