OLD | NEW |
1 // Copyright 2015 The Crashpad Authors. All rights reserved. | 1 // Copyright 2015 The Crashpad Authors. All rights reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
202 //! to kPending. | 202 //! to kPending. |
203 void AddNewRecord(const ReportDisk& new_report_disk); | 203 void AddNewRecord(const ReportDisk& new_report_disk); |
204 | 204 |
205 //! \brief Finds all reports in a given state. The \a reports vector is only | 205 //! \brief Finds all reports in a given state. The \a reports vector is only |
206 //! valid when CrashReportDatabase::kNoError is returned. | 206 //! valid when CrashReportDatabase::kNoError is returned. |
207 //! | 207 //! |
208 //! \param[in] desired_state The state to match. | 208 //! \param[in] desired_state The state to match. |
209 //! \param[out] reports Matching reports, must be empty on entry. | 209 //! \param[out] reports Matching reports, must be empty on entry. |
210 OperationStatus FindReports( | 210 OperationStatus FindReports( |
211 ReportState desired_state, | 211 ReportState desired_state, |
212 std::vector<const CrashReportDatabase::Report>* reports) const; | 212 std::vector<CrashReportDatabase::Report>* reports) const; |
213 | 213 |
214 //! \brief Finds the report matching the given UUID. | 214 //! \brief Finds the report matching the given UUID. |
215 //! | 215 //! |
216 //! The returned report is only valid if CrashReportDatabase::kNoError is | 216 //! The returned report is only valid if CrashReportDatabase::kNoError is |
217 //! returned. | 217 //! returned. |
218 //! | 218 //! |
219 //! \param[in] uuid The report identifier. | 219 //! \param[in] uuid The report identifier. |
220 //! \param[out] report_disk The found report, valid only if | 220 //! \param[out] report_disk The found report, valid only if |
221 //! CrashReportDatabase::kNoError is returned. Ownership is not | 221 //! CrashReportDatabase::kNoError is returned. Ownership is not |
222 //! transferred to the caller, and the report may not be modified. | 222 //! transferred to the caller, and the report may not be modified. |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
307 } | 307 } |
308 | 308 |
309 void Metadata::AddNewRecord(const ReportDisk& new_report_disk) { | 309 void Metadata::AddNewRecord(const ReportDisk& new_report_disk) { |
310 DCHECK(new_report_disk.state == ReportState::kPending); | 310 DCHECK(new_report_disk.state == ReportState::kPending); |
311 reports_.push_back(new_report_disk); | 311 reports_.push_back(new_report_disk); |
312 dirty_ = true; | 312 dirty_ = true; |
313 } | 313 } |
314 | 314 |
315 OperationStatus Metadata::FindReports( | 315 OperationStatus Metadata::FindReports( |
316 ReportState desired_state, | 316 ReportState desired_state, |
317 std::vector<const CrashReportDatabase::Report>* reports) const { | 317 std::vector<CrashReportDatabase::Report>* reports) const { |
318 DCHECK(reports->empty()); | 318 DCHECK(reports->empty()); |
319 for (const auto& report : reports_) { | 319 for (const auto& report : reports_) { |
320 if (report.state == desired_state && | 320 if (report.state == desired_state && |
321 VerifyReport(report, desired_state) == CrashReportDatabase::kNoError) { | 321 VerifyReport(report, desired_state) == CrashReportDatabase::kNoError) { |
322 reports->push_back(report); | 322 reports->push_back(report); |
323 } | 323 } |
324 } | 324 } |
325 return CrashReportDatabase::kNoError; | 325 return CrashReportDatabase::kNoError; |
326 } | 326 } |
327 | 327 |
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 ~CrashReportDatabaseWin() override; | 522 ~CrashReportDatabaseWin() override; |
523 | 523 |
524 bool Initialize(); | 524 bool Initialize(); |
525 | 525 |
526 // CrashReportDatabase: | 526 // CrashReportDatabase: |
527 OperationStatus PrepareNewCrashReport(NewReport** report) override; | 527 OperationStatus PrepareNewCrashReport(NewReport** report) override; |
528 OperationStatus FinishedWritingCrashReport(NewReport* report, | 528 OperationStatus FinishedWritingCrashReport(NewReport* report, |
529 UUID* uuid) override; | 529 UUID* uuid) override; |
530 OperationStatus ErrorWritingCrashReport(NewReport* report) override; | 530 OperationStatus ErrorWritingCrashReport(NewReport* report) override; |
531 OperationStatus LookUpCrashReport(const UUID& uuid, Report* report) override; | 531 OperationStatus LookUpCrashReport(const UUID& uuid, Report* report) override; |
532 OperationStatus GetPendingReports( | 532 OperationStatus GetPendingReports(std::vector<Report>* reports) override; |
533 std::vector<const Report>* reports) override; | 533 OperationStatus GetCompletedReports(std::vector<Report>* reports) override; |
534 OperationStatus GetCompletedReports( | |
535 std::vector<const Report>* reports) override; | |
536 OperationStatus GetReportForUploading(const UUID& uuid, | 534 OperationStatus GetReportForUploading(const UUID& uuid, |
537 const Report** report) override; | 535 const Report** report) override; |
538 OperationStatus RecordUploadAttempt(const Report* report, | 536 OperationStatus RecordUploadAttempt(const Report* report, |
539 bool successful, | 537 bool successful, |
540 const std::string& id) override; | 538 const std::string& id) override; |
541 OperationStatus SkipReportUpload(const UUID& uuid) override; | 539 OperationStatus SkipReportUpload(const UUID& uuid) override; |
542 | 540 |
543 private: | 541 private: |
544 scoped_ptr<Metadata> AcquireMetadata(); | 542 scoped_ptr<Metadata> AcquireMetadata(); |
545 | 543 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
635 return kDatabaseError; | 633 return kDatabaseError; |
636 // Find and return a copy of the matching report. | 634 // Find and return a copy of the matching report. |
637 const ReportDisk* report_disk; | 635 const ReportDisk* report_disk; |
638 OperationStatus os = metadata->FindSingleReport(uuid, &report_disk); | 636 OperationStatus os = metadata->FindSingleReport(uuid, &report_disk); |
639 if (os == kNoError) | 637 if (os == kNoError) |
640 *report = *report_disk; | 638 *report = *report_disk; |
641 return os; | 639 return os; |
642 } | 640 } |
643 | 641 |
644 OperationStatus CrashReportDatabaseWin::GetPendingReports( | 642 OperationStatus CrashReportDatabaseWin::GetPendingReports( |
645 std::vector<const Report>* reports) { | 643 std::vector<Report>* reports) { |
646 scoped_ptr<Metadata> metadata(AcquireMetadata()); | 644 scoped_ptr<Metadata> metadata(AcquireMetadata()); |
647 return metadata ? metadata->FindReports(ReportState::kPending, reports) | 645 return metadata ? metadata->FindReports(ReportState::kPending, reports) |
648 : kDatabaseError; | 646 : kDatabaseError; |
649 } | 647 } |
650 | 648 |
651 OperationStatus CrashReportDatabaseWin::GetCompletedReports( | 649 OperationStatus CrashReportDatabaseWin::GetCompletedReports( |
652 std::vector<const Report>* reports) { | 650 std::vector<Report>* reports) { |
653 scoped_ptr<Metadata> metadata(AcquireMetadata()); | 651 scoped_ptr<Metadata> metadata(AcquireMetadata()); |
654 return metadata ? metadata->FindReports(ReportState::kCompleted, reports) | 652 return metadata ? metadata->FindReports(ReportState::kCompleted, reports) |
655 : kDatabaseError; | 653 : kDatabaseError; |
656 } | 654 } |
657 | 655 |
658 OperationStatus CrashReportDatabaseWin::GetReportForUploading( | 656 OperationStatus CrashReportDatabaseWin::GetReportForUploading( |
659 const UUID& uuid, | 657 const UUID& uuid, |
660 const Report** report) { | 658 const Report** report) { |
661 scoped_ptr<Metadata> metadata(AcquireMetadata()); | 659 scoped_ptr<Metadata> metadata(AcquireMetadata()); |
662 if (!metadata) | 660 if (!metadata) |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
728 // static | 726 // static |
729 scoped_ptr<CrashReportDatabase> CrashReportDatabase::Initialize( | 727 scoped_ptr<CrashReportDatabase> CrashReportDatabase::Initialize( |
730 const base::FilePath& path) { | 728 const base::FilePath& path) { |
731 scoped_ptr<CrashReportDatabaseWin> database_win( | 729 scoped_ptr<CrashReportDatabaseWin> database_win( |
732 new CrashReportDatabaseWin(path.Append(kDatabaseDirectoryName))); | 730 new CrashReportDatabaseWin(path.Append(kDatabaseDirectoryName))); |
733 return database_win->Initialize() ? database_win.Pass() | 731 return database_win->Initialize() ? database_win.Pass() |
734 : scoped_ptr<CrashReportDatabaseWin>(); | 732 : scoped_ptr<CrashReportDatabaseWin>(); |
735 } | 733 } |
736 | 734 |
737 } // namespace crashpad | 735 } // namespace crashpad |
OLD | NEW |