OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/utility/media_router/dial_device_description_parser_impl.h" | 5 #include "chrome/utility/media_router/dial_device_description_parser_impl.h" |
6 | 6 |
7 #include <libxml/parser.h> | 7 #include <libxml/parser.h> |
8 #include <libxml/tree.h> | 8 #include <libxml/tree.h> |
9 #include <libxml/xpath.h> | 9 #include <libxml/xpath.h> |
10 #include <utility> | 10 #include <utility> |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 // static | 56 // static |
57 void DialDeviceDescriptionParserImpl::Create( | 57 void DialDeviceDescriptionParserImpl::Create( |
58 const service_manager::BindSourceInfo& source_info, | 58 const service_manager::BindSourceInfo& source_info, |
59 chrome::mojom::DialDeviceDescriptionParserRequest request) { | 59 chrome::mojom::DialDeviceDescriptionParserRequest request) { |
60 mojo::MakeStrongBinding(base::MakeUnique<DialDeviceDescriptionParserImpl>(), | 60 mojo::MakeStrongBinding(base::MakeUnique<DialDeviceDescriptionParserImpl>(), |
61 std::move(request)); | 61 std::move(request)); |
62 } | 62 } |
63 | 63 |
64 void DialDeviceDescriptionParserImpl::ParseDialDeviceDescription( | 64 void DialDeviceDescriptionParserImpl::ParseDialDeviceDescription( |
65 const std::string& device_description_xml_data, | 65 const std::string& device_description_xml_data, |
66 const ParseDialDeviceDescriptionCallback& callback) { | 66 ParseDialDeviceDescriptionCallback callback) { |
67 DCHECK(thread_checker_.CalledOnValidThread()); | 67 DCHECK(thread_checker_.CalledOnValidThread()); |
68 DCHECK(!callback.is_null()); | 68 DCHECK(!callback.is_null()); |
69 | 69 |
70 chrome::mojom::DialDeviceDescriptionPtr device_description = | 70 chrome::mojom::DialDeviceDescriptionPtr device_description = |
71 Parse(device_description_xml_data); | 71 Parse(device_description_xml_data); |
72 callback.Run(std::move(device_description)); | 72 std::move(callback).Run(std::move(device_description)); |
73 } | 73 } |
74 | 74 |
75 chrome::mojom::DialDeviceDescriptionPtr DialDeviceDescriptionParserImpl::Parse( | 75 chrome::mojom::DialDeviceDescriptionPtr DialDeviceDescriptionParserImpl::Parse( |
76 const std::string& xml) { | 76 const std::string& xml) { |
77 XmlReader xml_reader; | 77 XmlReader xml_reader; |
78 if (!xml_reader.Load(xml)) | 78 if (!xml_reader.Load(xml)) |
79 return nullptr; | 79 return nullptr; |
80 | 80 |
81 chrome::mojom::DialDeviceDescriptionPtr out = | 81 chrome::mojom::DialDeviceDescriptionPtr out = |
82 chrome::mojom::DialDeviceDescription::New(); | 82 chrome::mojom::DialDeviceDescription::New(); |
(...skipping 23 matching lines...) Expand all Loading... |
106 ErrorType error = Validate(*out); | 106 ErrorType error = Validate(*out); |
107 if (error != ErrorType::NONE) { | 107 if (error != ErrorType::NONE) { |
108 DLOG(WARNING) << "Device description failed to validate: " << error; | 108 DLOG(WARNING) << "Device description failed to validate: " << error; |
109 return nullptr; | 109 return nullptr; |
110 } | 110 } |
111 | 111 |
112 return out; | 112 return out; |
113 } | 113 } |
114 | 114 |
115 } // namespace media_router | 115 } // namespace media_router |
OLD | NEW |