OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 #ifndef CHROME_COMMON_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ | 5 #ifndef CHROME_COMMON_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ |
6 #define CHROME_COMMON_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ | 6 #define CHROME_COMMON_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "chrome/common/media_router/discovery/media_sink_internal.h" | 10 #include "chrome/common/media_router/discovery/media_sink_internal.h" |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 const media_router::CastSinkExtraData& extra_data) { | 150 const media_router::CastSinkExtraData& extra_data) { |
151 return extra_data.cast_channel_id; | 151 return extra_data.cast_channel_id; |
152 } | 152 } |
153 | 153 |
154 static bool Read(media_router::mojom::CastMediaSinkDataView data, | 154 static bool Read(media_router::mojom::CastMediaSinkDataView data, |
155 media_router::CastSinkExtraData* out); | 155 media_router::CastSinkExtraData* out); |
156 }; | 156 }; |
157 | 157 |
158 template <> | 158 template <> |
159 struct StructTraits<media_router::mojom::RouteMessageDataView, | 159 struct StructTraits<media_router::mojom::RouteMessageDataView, |
160 media_router::RouteMessage> { | 160 content::PresentationConnectionMessage> { |
161 static media_router::mojom::RouteMessage::Type type( | 161 static media_router::mojom::RouteMessage::Type type( |
162 const media_router::RouteMessage& msg) { | 162 const content::PresentationConnectionMessage& msg) { |
163 switch (msg.type) { | 163 if (msg.message) |
164 case media_router::RouteMessage::TEXT: | 164 return media_router::mojom::RouteMessage::Type::TEXT; |
165 return media_router::mojom::RouteMessage::Type::TEXT; | 165 else if (msg.data) |
166 case media_router::RouteMessage::BINARY: | 166 return media_router::mojom::RouteMessage::Type::BINARY; |
167 return media_router::mojom::RouteMessage::Type::BINARY; | |
168 } | |
169 NOTREACHED(); | 167 NOTREACHED(); |
170 return media_router::mojom::RouteMessage::Type::TEXT; | 168 return media_router::mojom::RouteMessage::Type::TEXT; |
171 } | 169 } |
172 | 170 |
173 static const base::Optional<std::string>& message( | 171 static const base::Optional<std::string>& message( |
174 const media_router::RouteMessage& msg) { | 172 const content::PresentationConnectionMessage& msg) { |
175 return msg.text; | 173 return msg.message; |
176 } | 174 } |
177 | 175 |
178 static const base::Optional<std::vector<uint8_t>>& data( | 176 static const base::Optional<std::vector<uint8_t>>& data( |
179 const media_router::RouteMessage& msg) { | 177 const content::PresentationConnectionMessage& msg) { |
180 return msg.binary; | 178 return msg.data; |
181 } | 179 } |
182 | 180 |
183 static bool Read(media_router::mojom::RouteMessageDataView data, | 181 static bool Read(media_router::mojom::RouteMessageDataView data, |
184 media_router::RouteMessage* out) { | 182 content::PresentationConnectionMessage* out) { |
185 media_router::mojom::RouteMessage::Type type; | 183 media_router::mojom::RouteMessage::Type type; |
186 if (!data.ReadType(&type)) | 184 if (!data.ReadType(&type)) |
187 return false; | 185 return false; |
188 switch (type) { | 186 switch (type) { |
189 case media_router::mojom::RouteMessage::Type::TEXT: { | 187 case media_router::mojom::RouteMessage::Type::TEXT: { |
190 out->type = media_router::RouteMessage::TEXT; | 188 if (!data.ReadMessage(&out->message) || !out->message) |
191 base::Optional<std::string> text; | |
192 if (!data.ReadMessage(&text) || !text) | |
193 return false; | 189 return false; |
194 out->text = std::move(text); | |
195 break; | 190 break; |
196 } | 191 } |
197 case media_router::mojom::RouteMessage::Type::BINARY: { | 192 case media_router::mojom::RouteMessage::Type::BINARY: { |
198 out->type = media_router::RouteMessage::BINARY; | 193 if (!data.ReadData(&out->data) || !out->data) |
199 base::Optional<std::vector<uint8_t>> binary; | |
200 if (!data.ReadData(&binary) || !binary) | |
201 return false; | 194 return false; |
202 out->binary = std::move(binary); | |
203 break; | 195 break; |
204 } | 196 } |
205 default: | |
206 return false; | |
207 } | 197 } |
208 return true; | 198 return true; |
209 } | 199 } |
210 }; | 200 }; |
211 | 201 |
212 template <> | 202 template <> |
213 struct StructTraits<media_router::mojom::IssueDataView, | 203 struct StructTraits<media_router::mojom::IssueDataView, |
214 media_router::IssueInfo> { | 204 media_router::IssueInfo> { |
215 static bool Read(media_router::mojom::IssueDataView data, | 205 static bool Read(media_router::mojom::IssueDataView data, |
216 media_router::IssueInfo* out); | 206 media_router::IssueInfo* out); |
(...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
566 *output = media_router::RouteRequestResult::CANCELLED; | 556 *output = media_router::RouteRequestResult::CANCELLED; |
567 return true; | 557 return true; |
568 } | 558 } |
569 return false; | 559 return false; |
570 } | 560 } |
571 }; | 561 }; |
572 | 562 |
573 } // namespace mojo | 563 } // namespace mojo |
574 | 564 |
575 #endif // CHROME_COMMON_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ | 565 #endif // CHROME_COMMON_MEDIA_ROUTER_MOJO_MEDIA_ROUTER_STRUCT_TRAITS_H_ |
OLD | NEW |