Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Unified Diff: chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h

Issue 2701633002: [Media Router] Add DialMediaSinkService and DeviceDescriptionService (Closed)
Patch Set: resolve code review comments from Mark and Derek Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h
diff --git a/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h b/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h
index 87d2db3c2b018bd042aeacf1ff766adb320af04b..130050d0069195789fe05ce01724819a6e2f446c 100644
--- a/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h
+++ b/chrome/browser/media/router/discovery/dial/safe_dial_device_description_parser.h
@@ -10,6 +10,7 @@
#include "base/callback.h"
#include "base/macros.h"
+#include "base/memory/ref_counted.h"
#include "base/optional.h"
#include "base/threading/thread_checker.h"
#include "chrome/common/media_router/dial_device_description_parser.mojom.h"
@@ -19,7 +20,8 @@ namespace media_router {
// SafeDialDeviceDescriptionParser parses the given device description XML file
// safely via a utility process. This class runs on IO thread.
-class SafeDialDeviceDescriptionParser {
+class SafeDialDeviceDescriptionParser
+ : public base::RefCounted<SafeDialDeviceDescriptionParser> {
public:
// Callback function to be invoked when utility process finishes parsing
// device description XML.
@@ -34,16 +36,22 @@ class SafeDialDeviceDescriptionParser {
void Start(const std::string& xml_text,
const DeviceDescriptionCallback& callback);
+ int32_t GetPendingParsingRequests() { return pending_parsing_requests_; }
+
private:
+ friend class base::RefCounted<SafeDialDeviceDescriptionParser>;
+
~SafeDialDeviceDescriptionParser();
// See SafeDialDeviceDescriptionParser::DeviceDescriptionCallback
void OnParseDeviceDescriptionComplete(
+ const DeviceDescriptionCallback& callback,
chrome::mojom::DialDeviceDescriptionPtr device_description);
// TODO(crbug.com/702766): Add an enum type describing why utility process
// fails to parse device description xml.
- void OnParseDeviceDescriptionFailed();
+ void OnParseDeviceDescriptionFailed(
+ const DeviceDescriptionCallback& callback);
// Utility client used to send device description parsing task to the utility
// process.
@@ -51,8 +59,8 @@ class SafeDialDeviceDescriptionParser {
chrome::mojom::DialDeviceDescriptionParser>>
utility_process_mojo_client_;
- // Only accessed on the IO thread.
- DeviceDescriptionCallback device_description_callback_;
+ // How many parsing requests are pending.
+ int32_t pending_parsing_requests_;
base::ThreadChecker thread_checker_;

Powered by Google App Engine
This is Rietveld 408576698