Index: blimp/common/logging.cc |
diff --git a/blimp/common/logging.cc b/blimp/common/logging.cc |
index 24d6060adb37028eca7f1d7933fa481ef8e7c26b..a6bc09c0266658e8dd15f91b82ff8a9e6b006d62 100644 |
--- a/blimp/common/logging.cc |
+++ b/blimp/common/logging.cc |
@@ -300,6 +300,46 @@ void ExtractBlobChannelMessageFields(const BlimpMessage& message, |
} |
} |
+// Logs fields from GEOLOCATION messages. |
+void ExtractGeolocationMessageFields(const BlimpMessage& message, |
+ LogFields* output) { |
+ switch (message.geolocation().type_case()) { |
+ case GeolocationMessage::TypeCase::kUpdateListenState: |
+ AddField("subtype", "UPDATE_LISTEN_STATE", output); |
+ AddField("listen_state", |
+ message.geolocation().update_listen_state().listen_state(), |
+ output); |
+ break; |
+ case GeolocationMessage::TypeCase::kRequestRefresh: |
+ AddField("subtype", "REQUEST_REFRESH", output); |
+ break; |
+ case GeolocationMessage::TypeCase::kLocation: { |
+ const GeolocationPositionMessage& location = |
+ message.geolocation().location(); |
+ AddField("subtype", "LOCATION", output); |
+ AddField("latitude", location.coordinates().latitude(), output); |
+ AddField("longitude", location.coordinates().longitude(), output); |
+ AddField("altitude", location.coordinates().altitude(), output); |
+ AddField("accuracy", location.coordinates().accuracy(), output); |
+ AddField("altitude_accuracy", location.coordinates().altitude_accuracy(), |
+ output); |
+ AddField("heading", location.coordinates().heading(), output); |
+ AddField("speed", location.coordinates().speed(), output); |
+ AddField("timestamp_millis", location.timestamp_millis(), output); |
+ break; |
+ } |
+ case GeolocationMessage::TypeCase::kError: |
+ AddField("subtype", "ERROR", output); |
+ AddField("error_code", message.geolocation().error().error_code(), |
+ output); |
+ AddField("error_message", message.geolocation().error().error_message(), |
+ output); |
+ break; |
+ case GeolocationMessage::TypeCase::TYPE_NOT_SET: |
+ break; |
+ } |
+} |
+ |
} // namespace |
std::ostream& operator<<(std::ostream& out, const BlimpMessage& message) { |
@@ -342,6 +382,10 @@ std::ostream& operator<<(std::ostream& out, const BlimpMessage& message) { |
AddField("type", "IME", &fields); |
ExtractImeMessageFields(message, &fields); |
break; |
+ case BlimpMessage::kGeolocation: |
+ AddField("type", "GEOLOCATION", &fields); |
+ ExtractGeolocationMessageFields(message, &fields); |
+ break; |
case BlimpMessage::FEATURE_NOT_SET: |
AddField("type", "<UNKNOWN>", &fields); |
break; |