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 #include "blimp/common/logging.h" | 5 #include "blimp/common/logging.h" |
6 | 6 |
7 #include <iostream> | 7 #include <iostream> |
8 #include <string> | 8 #include <string> |
9 #include <utility> | 9 #include <utility> |
10 #include <vector> | 10 #include <vector> |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
293 message.blob_channel().transfer_blob().blob_id().size()), | 293 message.blob_channel().transfer_blob().blob_id().size()), |
294 output); | 294 output); |
295 AddField("payload_size", | 295 AddField("payload_size", |
296 message.blob_channel().transfer_blob().payload().size(), output); | 296 message.blob_channel().transfer_blob().payload().size(), output); |
297 break; | 297 break; |
298 case BlobChannelMessage::TypeCase::TYPE_NOT_SET: // unknown | 298 case BlobChannelMessage::TypeCase::TYPE_NOT_SET: // unknown |
299 break; | 299 break; |
300 } | 300 } |
301 } | 301 } |
302 | 302 |
303 // Logs fields from GEOLOCATION messages. | |
304 void ExtractGeolocationMessageFields(const BlimpMessage& message, | |
305 LogFields* output) { | |
306 switch (message.geolocation().type_case()) { | |
307 case GeolocationMessage::TypeCase::kUpdateListenState: | |
308 AddField("subtype", "UPDATE_LISTEN_STATE", output); | |
309 AddField("listen_state", | |
310 message.geolocation().update_listen_state().listen_state(), | |
311 output); | |
312 break; | |
313 case GeolocationMessage::TypeCase::kRequestRefresh: | |
314 AddField("subtype", "REQUEST_REFRESH", output); | |
315 break; | |
316 case GeolocationMessage::TypeCase::kLocation: | |
317 AddField("subtype", "LOCATION", output); | |
318 AddField("latitude", message.geolocation().location().latitude(), output); | |
Wez
2016/07/12 21:35:12
nit: Take a local const& to message.geolocation.lo
CJ
2016/07/13 21:49:19
Done.
Wez
2016/07/14 01:19:21
nit: I'd suggest taking the reference to location.
CJ
2016/07/14 23:55:08
Any draw back to leaving the location reference in
| |
319 AddField("longitude", message.geolocation().location().longitude(), | |
320 output); | |
321 AddField("altitude", message.geolocation().location().altitude(), output); | |
322 AddField("accuracy", message.geolocation().location().accuracy(), output); | |
323 AddField("altitude_accuracy", | |
324 message.geolocation().location().altitude_accuracy(), output); | |
325 AddField("heading", message.geolocation().location().heading(), output); | |
326 AddField("speed", message.geolocation().location().speed(), output); | |
327 AddField("timestamp_millis", | |
328 message.geolocation().location().timestamp_millis(), output); | |
329 break; | |
330 case GeolocationMessage::TypeCase::kError: | |
331 AddField("subtype", "ERROR", output); | |
332 AddField("error_code", message.geolocation().error().error_code(), | |
333 output); | |
334 AddField("error_message", message.geolocation().error().error_message(), | |
335 output); | |
336 break; | |
337 case GeolocationMessage::TypeCase::TYPE_NOT_SET: | |
338 break; | |
339 } | |
340 } | |
341 | |
303 } // namespace | 342 } // namespace |
304 | 343 |
305 std::ostream& operator<<(std::ostream& out, const BlimpMessage& message) { | 344 std::ostream& operator<<(std::ostream& out, const BlimpMessage& message) { |
306 LogFields fields; | 345 LogFields fields; |
307 | 346 |
308 switch (message.feature_case()) { | 347 switch (message.feature_case()) { |
309 case BlimpMessage::kCompositor: | 348 case BlimpMessage::kCompositor: |
310 AddField("type", "COMPOSITOR", &fields); | 349 AddField("type", "COMPOSITOR", &fields); |
311 ExtractCompositorMessageFields(message, &fields); | 350 ExtractCompositorMessageFields(message, &fields); |
312 break; | 351 break; |
(...skipping 22 matching lines...) Expand all Loading... | |
335 ExtractTabControlMessageFields(message, &fields); | 374 ExtractTabControlMessageFields(message, &fields); |
336 break; | 375 break; |
337 case BlimpMessage::kBlobChannel: | 376 case BlimpMessage::kBlobChannel: |
338 AddField("type", "BLOB_CHANNEL", &fields); | 377 AddField("type", "BLOB_CHANNEL", &fields); |
339 ExtractBlobChannelMessageFields(message, &fields); | 378 ExtractBlobChannelMessageFields(message, &fields); |
340 break; | 379 break; |
341 case BlimpMessage::kIme: | 380 case BlimpMessage::kIme: |
342 AddField("type", "IME", &fields); | 381 AddField("type", "IME", &fields); |
343 ExtractImeMessageFields(message, &fields); | 382 ExtractImeMessageFields(message, &fields); |
344 break; | 383 break; |
384 case BlimpMessage::kGeolocation: | |
385 AddField("type", "GEOLOCATION", &fields); | |
386 ExtractGeolocationMessageFields(message, &fields); | |
387 break; | |
345 case BlimpMessage::FEATURE_NOT_SET: | 388 case BlimpMessage::FEATURE_NOT_SET: |
346 AddField("type", "<UNKNOWN>", &fields); | 389 AddField("type", "<UNKNOWN>", &fields); |
347 break; | 390 break; |
348 } | 391 } |
349 | 392 |
350 // Append "target_tab_id" (if present) and "byte_size" to the field set. | 393 // Append "target_tab_id" (if present) and "byte_size" to the field set. |
351 if (message.has_target_tab_id()) { | 394 if (message.has_target_tab_id()) { |
352 AddField("target_tab_id", message.target_tab_id(), &fields); | 395 AddField("target_tab_id", message.target_tab_id(), &fields); |
353 } | 396 } |
354 AddField("byte_size", message.ByteSize(), &fields); | 397 AddField("byte_size", message.ByteSize(), &fields); |
355 | 398 |
356 // Format message using the syntax: | 399 // Format message using the syntax: |
357 // <BlimpMessage field1=value1 field2="value 2"> | 400 // <BlimpMessage field1=value1 field2="value 2"> |
358 out << "<BlimpMessage "; | 401 out << "<BlimpMessage "; |
359 for (size_t i = 0; i < fields.size(); ++i) { | 402 for (size_t i = 0; i < fields.size(); ++i) { |
360 out << fields[i].first << "=" << fields[i].second | 403 out << fields[i].first << "=" << fields[i].second |
361 << (i != fields.size() - 1 ? " " : ""); | 404 << (i != fields.size() - 1 ? " " : ""); |
362 } | 405 } |
363 out << ">"; | 406 out << ">"; |
364 | 407 |
365 return out; | 408 return out; |
366 } | 409 } |
367 | 410 |
368 } // namespace blimp | 411 } // namespace blimp |
OLD | NEW |