Index: blimp/common/logging.cc |
diff --git a/blimp/common/logging.cc b/blimp/common/logging.cc |
index 24d6060adb37028eca7f1d7933fa481ef8e7c26b..0402aa1f22c53f4f2deb5bbdbcd301015b3ce55e 100644 |
--- a/blimp/common/logging.cc |
+++ b/blimp/common/logging.cc |
@@ -300,6 +300,43 @@ 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::kSetInterestLevel: |
+ AddField("subtype", "SET_INTEREST_LEVEL", output); |
+ AddField("level", message.geolocation().set_interest_level().level(), |
+ output); |
+ break; |
+ case GeolocationMessage::TypeCase::kRequestRefresh: |
+ AddField("subtype", "REQUEST_REFRESH", output); |
+ break; |
+ case GeolocationMessage::TypeCase::kCoordinates: { |
+ const GeolocationCoordinatesMessage& coordinates = |
+ message.geolocation().coordinates(); |
+ AddField("subtype", "COORDINATES", output); |
+ AddField("latitude", coordinates.latitude(), output); |
+ AddField("longitude", coordinates.longitude(), output); |
+ AddField("altitude", coordinates.altitude(), output); |
+ AddField("accuracy", coordinates.accuracy(), output); |
+ AddField("altitude_accuracy", coordinates.altitude_accuracy(), output); |
+ AddField("heading", coordinates.heading(), output); |
+ AddField("speed", coordinates.speed(), 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 +379,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; |