diff options
Diffstat (limited to 'chrome/browser/feedback/feedback_uploader.h')
-rw-r--r-- | chrome/browser/feedback/feedback_uploader.h | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/chrome/browser/feedback/feedback_uploader.h b/chrome/browser/feedback/feedback_uploader.h index 5c31047..9ddf3a0 100644 --- a/chrome/browser/feedback/feedback_uploader.h +++ b/chrome/browser/feedback/feedback_uploader.h @@ -22,7 +22,7 @@ class BrowserContext; namespace feedback { -struct FeedbackReport; +class FeedbackReport; // FeedbackUploader is used to add a feedback report to the queue of reports // being uploaded. In case uploading a report fails, it is written to disk and @@ -33,22 +33,27 @@ class FeedbackUploader : public BrowserContextKeyedService, explicit FeedbackUploader(content::BrowserContext* context); virtual ~FeedbackUploader(); - void QueueReport(scoped_ptr<std::string> data); + // Queues a report for uploading. + void QueueReport(const std::string& data); private: friend class FeedbackUploaderTest; struct ReportsUploadTimeComparator { - bool operator()(const FeedbackReport& a, const FeedbackReport& b) const; + bool operator()(FeedbackReport* a, FeedbackReport* b) const; }; // Dispatches the report to be uploaded. - void DispatchReport(scoped_ptr<std::string> data); + void DispatchReport(const std::string& data); + + // Loads any unsent reports from disk and queues them to be uploaded in + // the given browser context. + void QueueUnsentReports(content::BrowserContext* context); // Update our timer for uploading the next report. void UpdateUploadTimer(); // Requeue this report with a delay. - void RetryReport(scoped_ptr<std::string> data); + void RetryReport(const std::string& data); void setup_for_test(const ReportDataCallback& dispatch_callback, const base::TimeDelta& retry_delay); @@ -59,12 +64,10 @@ class FeedbackUploader : public BrowserContextKeyedService, base::OneShotTimer<FeedbackUploader> upload_timer_; // Priority queue of reports prioritized by the time the report is supposed // to be uploaded at. - std::priority_queue<FeedbackReport, - std::vector<FeedbackReport>, + std::priority_queue<scoped_refptr<FeedbackReport>, + std::vector<scoped_refptr<FeedbackReport> >, ReportsUploadTimeComparator> reports_queue_; - std::vector<FeedbackReport> loaded_reports_; - ReportDataCallback dispatch_callback_; base::TimeDelta retry_delay_; |