1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_MEDIA_ROUTER_ISSUE_H_
6 #define CHROME_BROWSER_MEDIA_ROUTER_ISSUE_H_
11 #include "base/logging.h"
12 #include "chrome/browser/media/router/media_route.h"
14 namespace media_router
{
16 // The text that corresponds with an action a user can take for a Issue.
19 enum Type
{ OK
, CANCEL
, DISMISS
, LEARN_MORE
};
21 explicit IssueAction(const Type type
);
24 Type
type() const { return type_
; }
26 bool Equals(const IssueAction
& other
) const { return type_
== other
.type_
; }
32 // Contains the information relevant to an issue.
35 using IssueId
= std::string
;
37 enum Severity
{ FATAL
, WARNING
, NOTIFICATION
};
39 // Creates a custom issue.
40 // |title|: The title for the issue.
41 // |message|: The optional description message for the issue.
42 // |default_action|: Default action user can take to resolve the issue.
43 // |secondary_actions|: Array of options user can take to resolve the
44 // issue. Can be empty. Currently only one secondary
45 // action is supported.
46 // |route_id|: The route id, or empty if global.
47 // |severity|: The severity of the issue.
48 // |is_blocking|: True if the issue needs to be resolved before continuing.
49 // |help_url|: Required if one of the actions is learn-more.
50 Issue(const std::string
& title
,
51 const std::string
& message
,
52 const IssueAction
& default_action
,
53 const std::vector
<IssueAction
>& secondary_actions
,
54 const MediaRouteId
& route_id
,
55 const Severity severity
,
57 const std::string
& helpUrl
);
61 // See constructor comments for more information about these fields.
62 const std::string
& title() const { return title_
; }
63 const std::string
& message() const { return message_
; }
64 IssueAction
default_action() const { return default_action_
; }
65 const std::vector
<IssueAction
>& secondary_actions() const {
66 return secondary_actions_
;
68 MediaRouteId
route_id() const { return route_id_
; }
69 Severity
severity() const { return severity_
; }
70 const IssueId
& id() const { return id_
; }
71 bool is_blocking() const { return is_blocking_
; }
72 bool is_global() const { return route_id_
.empty(); }
73 const GURL
& help_url() const { return help_url_
; }
75 bool Equals(const Issue
& other
) const;
80 IssueAction default_action_
;
81 std::vector
<IssueAction
> secondary_actions_
;
82 std::string route_id_
;
89 } // namespace media_router
91 #endif // CHROME_BROWSER_MEDIA_ROUTER_ISSUE_H_