summaryrefslogtreecommitdiffstats
path: root/chrome/browser/feedback/feedback_uploader.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/feedback/feedback_uploader.h')
-rw-r--r--chrome/browser/feedback/feedback_uploader.h21
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_;