| 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::kSetInterestLevel: |
| 308 AddField("subtype", "SET_INTEREST_LEVEL", output); |
| 309 AddField("level", message.geolocation().set_interest_level().level(), |
| 310 output); |
| 311 break; |
| 312 case GeolocationMessage::TypeCase::kRequestRefresh: |
| 313 AddField("subtype", "REQUEST_REFRESH", output); |
| 314 break; |
| 315 case GeolocationMessage::TypeCase::kCoordinates: { |
| 316 const GeolocationCoordinatesMessage& coordinates = |
| 317 message.geolocation().coordinates(); |
| 318 AddField("subtype", "COORDINATES", output); |
| 319 AddField("latitude", coordinates.latitude(), output); |
| 320 AddField("longitude", coordinates.longitude(), output); |
| 321 AddField("altitude", coordinates.altitude(), output); |
| 322 AddField("accuracy", coordinates.accuracy(), output); |
| 323 AddField("altitude_accuracy", coordinates.altitude_accuracy(), output); |
| 324 AddField("heading", coordinates.heading(), output); |
| 325 AddField("speed", coordinates.speed(), output); |
| 326 break; |
| 327 } |
| 328 case GeolocationMessage::TypeCase::kError: |
| 329 AddField("subtype", "ERROR", output); |
| 330 AddField("error_code", message.geolocation().error().error_code(), |
| 331 output); |
| 332 AddField("error_message", message.geolocation().error().error_message(), |
| 333 output); |
| 334 break; |
| 335 case GeolocationMessage::TypeCase::TYPE_NOT_SET: |
| 336 break; |
| 337 } |
| 338 } |
| 339 |
| 303 } // namespace | 340 } // namespace |
| 304 | 341 |
| 305 std::ostream& operator<<(std::ostream& out, const BlimpMessage& message) { | 342 std::ostream& operator<<(std::ostream& out, const BlimpMessage& message) { |
| 306 LogFields fields; | 343 LogFields fields; |
| 307 | 344 |
| 308 switch (message.feature_case()) { | 345 switch (message.feature_case()) { |
| 309 case BlimpMessage::kCompositor: | 346 case BlimpMessage::kCompositor: |
| 310 AddField("type", "COMPOSITOR", &fields); | 347 AddField("type", "COMPOSITOR", &fields); |
| 311 ExtractCompositorMessageFields(message, &fields); | 348 ExtractCompositorMessageFields(message, &fields); |
| 312 break; | 349 break; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 335 ExtractTabControlMessageFields(message, &fields); | 372 ExtractTabControlMessageFields(message, &fields); |
| 336 break; | 373 break; |
| 337 case BlimpMessage::kBlobChannel: | 374 case BlimpMessage::kBlobChannel: |
| 338 AddField("type", "BLOB_CHANNEL", &fields); | 375 AddField("type", "BLOB_CHANNEL", &fields); |
| 339 ExtractBlobChannelMessageFields(message, &fields); | 376 ExtractBlobChannelMessageFields(message, &fields); |
| 340 break; | 377 break; |
| 341 case BlimpMessage::kIme: | 378 case BlimpMessage::kIme: |
| 342 AddField("type", "IME", &fields); | 379 AddField("type", "IME", &fields); |
| 343 ExtractImeMessageFields(message, &fields); | 380 ExtractImeMessageFields(message, &fields); |
| 344 break; | 381 break; |
| 382 case BlimpMessage::kGeolocation: |
| 383 AddField("type", "GEOLOCATION", &fields); |
| 384 ExtractGeolocationMessageFields(message, &fields); |
| 385 break; |
| 345 case BlimpMessage::FEATURE_NOT_SET: | 386 case BlimpMessage::FEATURE_NOT_SET: |
| 346 AddField("type", "<UNKNOWN>", &fields); | 387 AddField("type", "<UNKNOWN>", &fields); |
| 347 break; | 388 break; |
| 348 } | 389 } |
| 349 | 390 |
| 350 // Append "target_tab_id" (if present) and "byte_size" to the field set. | 391 // Append "target_tab_id" (if present) and "byte_size" to the field set. |
| 351 if (message.has_target_tab_id()) { | 392 if (message.has_target_tab_id()) { |
| 352 AddField("target_tab_id", message.target_tab_id(), &fields); | 393 AddField("target_tab_id", message.target_tab_id(), &fields); |
| 353 } | 394 } |
| 354 AddField("byte_size", message.ByteSize(), &fields); | 395 AddField("byte_size", message.ByteSize(), &fields); |
| 355 | 396 |
| 356 // Format message using the syntax: | 397 // Format message using the syntax: |
| 357 // <BlimpMessage field1=value1 field2="value 2"> | 398 // <BlimpMessage field1=value1 field2="value 2"> |
| 358 out << "<BlimpMessage "; | 399 out << "<BlimpMessage "; |
| 359 for (size_t i = 0; i < fields.size(); ++i) { | 400 for (size_t i = 0; i < fields.size(); ++i) { |
| 360 out << fields[i].first << "=" << fields[i].second | 401 out << fields[i].first << "=" << fields[i].second |
| 361 << (i != fields.size() - 1 ? " " : ""); | 402 << (i != fields.size() - 1 ? " " : ""); |
| 362 } | 403 } |
| 363 out << ">"; | 404 out << ">"; |
| 364 | 405 |
| 365 return out; | 406 return out; |
| 366 } | 407 } |
| 367 | 408 |
| 368 } // namespace blimp | 409 } // namespace blimp |
| OLD | NEW |