Add pretty-print logging for MessageResult
gfe-relnote: adding unused functions, no behavior change
PiperOrigin-RevId: 278959771
Change-Id: I051b06467b827724a8aacdc0a591373a5f9312d7
diff --git a/quic/core/quic_types.cc b/quic/core/quic_types.cc
index 1f51dc5..48a41d8 100644
--- a/quic/core/quic_types.cc
+++ b/quic/core/quic_types.cc
@@ -515,6 +515,33 @@
}
}
+std::string MessageStatusToString(MessageStatus message_status) {
+ switch (message_status) {
+ RETURN_STRING_LITERAL(MESSAGE_STATUS_SUCCESS);
+ RETURN_STRING_LITERAL(MESSAGE_STATUS_ENCRYPTION_NOT_ESTABLISHED);
+ RETURN_STRING_LITERAL(MESSAGE_STATUS_UNSUPPORTED);
+ RETURN_STRING_LITERAL(MESSAGE_STATUS_BLOCKED);
+ RETURN_STRING_LITERAL(MESSAGE_STATUS_TOO_LARGE);
+ RETURN_STRING_LITERAL(MESSAGE_STATUS_INTERNAL_ERROR);
+ default:
+ return QuicStrCat("Unknown(", static_cast<int>(message_status), ")");
+ break;
+ }
+}
+
+std::string MessageResultToString(MessageResult message_result) {
+ if (message_result.status != MESSAGE_STATUS_SUCCESS) {
+ return QuicStrCat("{", MessageStatusToString(message_result.status), "}");
+ }
+ return QuicStrCat("{MESSAGE_STATUS_SUCCESS,id=", message_result.message_id,
+ "}");
+}
+
+std::ostream& operator<<(std::ostream& os, const MessageResult& mr) {
+ os << MessageResultToString(mr);
+ return os;
+}
+
std::string PacketNumberSpaceToString(PacketNumberSpace packet_number_space) {
switch (packet_number_space) {
RETURN_STRING_LITERAL(INITIAL_DATA);
diff --git a/quic/core/quic_types.h b/quic/core/quic_types.h
index d7206d6..972e57c 100644
--- a/quic/core/quic_types.h
+++ b/quic/core/quic_types.h
@@ -607,6 +607,9 @@
// reaches an invalid state.
};
+QUIC_EXPORT_PRIVATE std::string MessageStatusToString(
+ MessageStatus message_status);
+
// Used to return the result of SendMessage calls
struct QUIC_EXPORT_PRIVATE MessageResult {
MessageResult(MessageStatus status, QuicMessageId message_id);
@@ -615,11 +618,17 @@
return status == other.status && message_id == other.message_id;
}
+ QUIC_EXPORT_PRIVATE friend std::ostream& operator<<(std::ostream& os,
+ const MessageResult& mr);
+
MessageStatus status;
// Only valid when status is MESSAGE_STATUS_SUCCESS.
QuicMessageId message_id;
};
+QUIC_EXPORT_PRIVATE std::string MessageResultToString(
+ MessageResult message_result);
+
enum WriteStreamDataResult {
WRITE_SUCCESS,
STREAM_MISSING, // Trying to write data of a nonexistent stream (e.g.