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