[email protected] | 1eab4e9 | 2014-05-09 02:17:19 | [diff] [blame] | 1 | // Copyright 2014 The Chromium Authors. All rights reserved. |
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 2 | // Use of this source code is governed by a BSD-style license that can be |
3 | // found in the LICENSE file. | ||||
4 | |||||
[email protected] | 1eab4e9 | 2014-05-09 02:17:19 | [diff] [blame] | 5 | #ifndef COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_DELEGATE_H_ |
6 | #define COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_DELEGATE_H_ | ||||
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 7 | |
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 8 | #include "base/callback.h" |
avi | bc5337b | 2015-12-25 23:16:33 | [diff] [blame] | 9 | #include "base/macros.h" |
Ahmed Fakhry | af8ab05 | 2017-07-21 21:39:07 | [diff] [blame] | 10 | #include "base/memory/ref_counted.h" |
[email protected] | 1eab4e9 | 2014-05-09 02:17:19 | [diff] [blame] | 11 | #include "components/feedback/feedback_uploader.h" |
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 12 | #include "net/url_request/url_fetcher_delegate.h" |
13 | |||||
14 | namespace feedback { | ||||
15 | |||||
Ahmed Fakhry | af8ab05 | 2017-07-21 21:39:07 | [diff] [blame] | 16 | using ReportFailureCallback = |
17 | base::Callback<void(scoped_refptr<FeedbackReport>)>; | ||||
18 | |||||
thestig | 144c0c9 | 2017-05-18 05:58:02 | [diff] [blame] | 19 | // FeedbackUploaderDelegate is a simple HTTP uploader for a feedback report. |
20 | // When finished, it runs the appropriate callback passed in via the | ||||
21 | // constructor, and then deletes itself. | ||||
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 22 | class FeedbackUploaderDelegate : public net::URLFetcherDelegate { |
23 | public: | ||||
Ahmed Fakhry | af8ab05 | 2017-07-21 21:39:07 | [diff] [blame] | 24 | FeedbackUploaderDelegate(scoped_refptr<FeedbackReport> pending_report, |
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 25 | const base::Closure& success_callback, |
Ahmed Fakhry | af8ab05 | 2017-07-21 21:39:07 | [diff] [blame] | 26 | const ReportFailureCallback& error_callback); |
dcheng | 00ea022b | 2014-10-21 11:24:56 | [diff] [blame] | 27 | ~FeedbackUploaderDelegate() override; |
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 28 | |
29 | private: | ||||
30 | // Overridden from net::URLFetcherDelegate. | ||||
dcheng | 00ea022b | 2014-10-21 11:24:56 | [diff] [blame] | 31 | void OnURLFetchComplete(const net::URLFetcher* source) override; |
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 32 | |
Ahmed Fakhry | af8ab05 | 2017-07-21 21:39:07 | [diff] [blame] | 33 | scoped_refptr<FeedbackReport> pending_report_; |
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 34 | base::Closure success_callback_; |
Ahmed Fakhry | af8ab05 | 2017-07-21 21:39:07 | [diff] [blame] | 35 | ReportFailureCallback error_callback_; |
[email protected] | 4837225 | 2013-12-20 12:18:01 | [diff] [blame] | 36 | |
37 | DISALLOW_COPY_AND_ASSIGN(FeedbackUploaderDelegate); | ||||
38 | }; | ||||
39 | |||||
40 | } // namespace feedback | ||||
41 | |||||
[email protected] | 1eab4e9 | 2014-05-09 02:17:19 | [diff] [blame] | 42 | #endif // COMPONENTS_FEEDBACK_FEEDBACK_UPLOADER_DELEGATE_H_ |