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); |
| 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 |