Index: chrome/browser/media/webrtc_log_uploader.h |
diff --git a/chrome/browser/media/webrtc_log_uploader.h b/chrome/browser/media/webrtc_log_uploader.h |
index ecd53d645198066b3fa3e0e0b89de35ebd189622..167ccbbdab33b9372a8069f6af4c90944af1d20a 100644 |
--- a/chrome/browser/media/webrtc_log_uploader.h |
+++ b/chrome/browser/media/webrtc_log_uploader.h |
@@ -5,13 +5,14 @@ |
#ifndef CHROME_BROWSER_MEDIA_WEBRTC_LOG_UPLOADER_H_ |
#define CHROME_BROWSER_MEDIA_WEBRTC_LOG_UPLOADER_H_ |
+#include <map> |
#include <string> |
-#include <vector> |
#include "base/basictypes.h" |
#include "base/gtest_prod_util.h" |
#include "base/memory/ref_counted.h" |
#include "base/platform_file.h" |
+#include "chrome/browser/media/webrtc_logging_handler_host.h" |
#include "net/url_request/url_fetcher_delegate.h" |
namespace base { |
@@ -25,6 +26,12 @@ class URLRequestContextGetter; |
typedef struct z_stream_s z_stream; |
+// Used when uploading is done to inform about that it's done. |
+typedef struct { |
+ WebRtcLoggingHandlerHost::UploadDoneCallback callback; |
+ scoped_refptr<WebRtcLoggingHandlerHost> host; |
+} WebRtcLogUploadDoneData; |
+ |
class WebRtcLogURLRequestContextGetter; |
// WebRtcLogUploader uploads WebRTC logs, keeps count of how many logs have |
@@ -45,15 +52,24 @@ class WebRtcLogUploader : public net::URLFetcherDelegate { |
// count if true is returned. Must be called before UploadLog(). |
bool ApplyForStartLogging(); |
- // Uploads log and decreases log count. May only be called if permission to |
- // to log has been granted by calling ApplyForStartLogging() and getting true |
- // in return. After UploadLog has been called, a new permission must be |
- // granted. |
- void UploadLog(net::URLRequestContextGetter* request_context, |
- scoped_ptr<base::SharedMemory> shared_memory, |
- uint32 length, |
- const std::string& app_session_id, |
- const std::string& app_url); |
+ // Notifies that logging has stopped and that the log should not be uploaded. |
+ // Decreases log count. May only be called if permission to log has been |
+ // granted by calling ApplyForStartLogging() and getting true in return. |
+ // After this function has been called, a new permission must be granted. |
+ // Call either this function or LoggingStoppedDoUpload(). |
+ void LoggingStoppedDontUpload(); |
+ |
+ // Notifies that that logging has stopped and that the log should be uploaded. |
+ // Decreases log count. May only be called if permission to log has been |
+ // granted by calling ApplyForStartLogging() and getting true in return. After |
+ // this function has been called, a new permission must be granted. Call |
+ // either this function or LoggingStoppedDontUpload(). |
+ void LoggingStoppedDoUpload( |
+ net::URLRequestContextGetter* request_context, |
+ scoped_ptr<base::SharedMemory> shared_memory, |
+ uint32 length, |
+ const std::map<std::string, std::string>& meta_data, |
+ const WebRtcLogUploadDoneData& upload_done_data); |
// For testing purposes. If called, the multipart will not be uploaded, but |
// written to |post_data_| instead. |
@@ -69,8 +85,7 @@ class WebRtcLogUploader : public net::URLFetcherDelegate { |
// to RFC 2046. |
void SetupMultipart(std::string* post_data, uint8* log_buffer, |
uint32 log_buffer_length, |
- const std::string& app_session_id, |
- const std::string& app_url); |
+ const std::map<std::string, std::string>& meta_data); |
void AddLogData(std::string* post_data, uint8* log_buffer, |
uint32 log_buffer_length); |
@@ -99,6 +114,10 @@ class WebRtcLogUploader : public net::URLFetcherDelegate { |
// on the FILE thread. |
std::string* post_data_; |
+ typedef std::map<const net::URLFetcher*, WebRtcLogUploadDoneData> |
+ UploadDoneDataMap; |
+ UploadDoneDataMap upload_done_data_; |
+ |
DISALLOW_COPY_AND_ASSIGN(WebRtcLogUploader); |
}; |