OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "webkit/browser/fileapi/sandbox_directory_database.h" | 5 #include "webkit/browser/fileapi/sandbox_directory_database.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 #include <algorithm> | 8 #include <algorithm> |
9 #include <set> | 9 #include <set> |
10 #include <stack> | 10 #include <stack> |
(...skipping 500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
511 info->name = base::FilePath::StringType(); | 511 info->name = base::FilePath::StringType(); |
512 info->data_path = base::FilePath(); | 512 info->data_path = base::FilePath(); |
513 info->modification_time = base::Time::Now(); | 513 info->modification_time = base::Time::Now(); |
514 info->parent_id = 0; | 514 info->parent_id = 0; |
515 return true; | 515 return true; |
516 } | 516 } |
517 HandleError(FROM_HERE, status); | 517 HandleError(FROM_HERE, status); |
518 return false; | 518 return false; |
519 } | 519 } |
520 | 520 |
521 base::PlatformFileError SandboxDirectoryDatabase::AddFileInfo( | 521 base::File::Error SandboxDirectoryDatabase::AddFileInfo( |
522 const FileInfo& info, FileId* file_id) { | 522 const FileInfo& info, FileId* file_id) { |
523 if (!Init(REPAIR_ON_CORRUPTION)) | 523 if (!Init(REPAIR_ON_CORRUPTION)) |
524 return base::PLATFORM_FILE_ERROR_FAILED; | 524 return base::File::FILE_ERROR_FAILED; |
525 DCHECK(file_id); | 525 DCHECK(file_id); |
526 std::string child_key = GetChildLookupKey(info.parent_id, info.name); | 526 std::string child_key = GetChildLookupKey(info.parent_id, info.name); |
527 std::string child_id_string; | 527 std::string child_id_string; |
528 leveldb::Status status = | 528 leveldb::Status status = |
529 db_->Get(leveldb::ReadOptions(), child_key, &child_id_string); | 529 db_->Get(leveldb::ReadOptions(), child_key, &child_id_string); |
530 if (status.ok()) { | 530 if (status.ok()) { |
531 LOG(ERROR) << "File exists already!"; | 531 LOG(ERROR) << "File exists already!"; |
532 return base::PLATFORM_FILE_ERROR_EXISTS; | 532 return base::File::FILE_ERROR_EXISTS; |
533 } | 533 } |
534 if (!status.IsNotFound()) { | 534 if (!status.IsNotFound()) { |
535 HandleError(FROM_HERE, status); | 535 HandleError(FROM_HERE, status); |
536 return base::PLATFORM_FILE_ERROR_NOT_FOUND; | 536 return base::File::FILE_ERROR_NOT_FOUND; |
537 } | 537 } |
538 | 538 |
539 if (!IsDirectory(info.parent_id)) { | 539 if (!IsDirectory(info.parent_id)) { |
540 LOG(ERROR) << "New parent directory is a file!"; | 540 LOG(ERROR) << "New parent directory is a file!"; |
541 return base::PLATFORM_FILE_ERROR_NOT_A_DIRECTORY; | 541 return base::File::FILE_ERROR_NOT_A_DIRECTORY; |
542 } | 542 } |
543 | 543 |
544 // This would be a fine place to limit the number of files in a directory, if | 544 // This would be a fine place to limit the number of files in a directory, if |
545 // we decide to add that restriction. | 545 // we decide to add that restriction. |
546 | 546 |
547 FileId temp_id; | 547 FileId temp_id; |
548 if (!GetLastFileId(&temp_id)) | 548 if (!GetLastFileId(&temp_id)) |
549 return base::PLATFORM_FILE_ERROR_FAILED; | 549 return base::File::FILE_ERROR_FAILED; |
550 ++temp_id; | 550 ++temp_id; |
551 | 551 |
552 leveldb::WriteBatch batch; | 552 leveldb::WriteBatch batch; |
553 if (!AddFileInfoHelper(info, temp_id, &batch)) | 553 if (!AddFileInfoHelper(info, temp_id, &batch)) |
554 return base::PLATFORM_FILE_ERROR_FAILED; | 554 return base::File::FILE_ERROR_FAILED; |
555 | 555 |
556 batch.Put(LastFileIdKey(), base::Int64ToString(temp_id)); | 556 batch.Put(LastFileIdKey(), base::Int64ToString(temp_id)); |
557 status = db_->Write(leveldb::WriteOptions(), &batch); | 557 status = db_->Write(leveldb::WriteOptions(), &batch); |
558 if (!status.ok()) { | 558 if (!status.ok()) { |
559 HandleError(FROM_HERE, status); | 559 HandleError(FROM_HERE, status); |
560 return base::PLATFORM_FILE_ERROR_FAILED; | 560 return base::File::FILE_ERROR_FAILED; |
561 } | 561 } |
562 *file_id = temp_id; | 562 *file_id = temp_id; |
563 return base::PLATFORM_FILE_OK; | 563 return base::File::FILE_OK; |
564 } | 564 } |
565 | 565 |
566 bool SandboxDirectoryDatabase::RemoveFileInfo(FileId file_id) { | 566 bool SandboxDirectoryDatabase::RemoveFileInfo(FileId file_id) { |
567 if (!Init(REPAIR_ON_CORRUPTION)) | 567 if (!Init(REPAIR_ON_CORRUPTION)) |
568 return false; | 568 return false; |
569 leveldb::WriteBatch batch; | 569 leveldb::WriteBatch batch; |
570 if (!RemoveFileInfoHelper(file_id, &batch)) | 570 if (!RemoveFileInfoHelper(file_id, &batch)) |
571 return false; | 571 return false; |
572 leveldb::Status status = db_->Write(leveldb::WriteOptions(), &batch); | 572 leveldb::Status status = db_->Write(leveldb::WriteOptions(), &batch); |
573 if (!status.ok()) { | 573 if (!status.ok()) { |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
919 | 919 |
920 void SandboxDirectoryDatabase::HandleError( | 920 void SandboxDirectoryDatabase::HandleError( |
921 const tracked_objects::Location& from_here, | 921 const tracked_objects::Location& from_here, |
922 const leveldb::Status& status) { | 922 const leveldb::Status& status) { |
923 LOG(ERROR) << "SandboxDirectoryDatabase failed at: " | 923 LOG(ERROR) << "SandboxDirectoryDatabase failed at: " |
924 << from_here.ToString() << " with error: " << status.ToString(); | 924 << from_here.ToString() << " with error: " << status.ToString(); |
925 db_.reset(); | 925 db_.reset(); |
926 } | 926 } |
927 | 927 |
928 } // namespace fileapi | 928 } // namespace fileapi |
OLD | NEW |