Index: net/quic/quic_types.h |
diff --git a/net/quic/quic_types.h b/net/quic/quic_types.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..33fe3e28a9ed38fa9c9c9587dcc3b81a711e9d95 |
--- /dev/null |
+++ b/net/quic/quic_types.h |
@@ -0,0 +1,69 @@ |
+// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef NET_QUIC_QUIC_TYPES_H_ |
+#define NET_QUIC_QUIC_TYPES_H_ |
+ |
+// This header defines some basic types that don't depend on quic_protocol.h, |
+// so that classes not directly related to the protocol wire format can avoid |
+// including quic_protocol.h. |
+ |
+#include <stddef.h> |
+#include <ostream> |
+ |
+#include "net/base/net_export.h" |
+ |
+namespace net { |
+ |
+// A struct for functions which consume data payloads and fins. |
+struct NET_EXPORT_PRIVATE QuicConsumedData { |
+ QuicConsumedData(size_t bytes_consumed, bool fin_consumed); |
+ |
+ // By default, gtest prints the raw bytes of an object. The bool data |
+ // member causes this object to have padding bytes, which causes the |
+ // default gtest object printer to read uninitialize memory. So we need |
+ // to teach gtest how to print this object. |
+ NET_EXPORT_PRIVATE friend std::ostream& operator<<( |
+ std::ostream& os, const QuicConsumedData& s); |
+ |
+ // How many bytes were consumed. |
+ size_t bytes_consumed; |
+ |
+ // True if an incoming fin was consumed. |
+ bool fin_consumed; |
+}; |
+ |
+// QuicAsyncStatus enumerates the possible results of an asynchronous |
+// operation. |
+enum QuicAsyncStatus { |
+ QUIC_SUCCESS = 0, |
+ QUIC_FAILURE = 1, |
+ // QUIC_PENDING results from an operation that will occur asynchonously. When |
+ // the operation is complete, a callback's |Run| method will be called. |
+ QUIC_PENDING = 2, |
+}; |
+ |
+// TODO(wtc): see if WriteStatus can be replaced by QuicAsyncStatus. |
+enum WriteStatus { |
+ WRITE_STATUS_OK, |
+ WRITE_STATUS_BLOCKED, |
+ WRITE_STATUS_ERROR, |
+}; |
+ |
+// A struct used to return the result of write calls including either the number |
+// of bytes written or the error code, depending upon the status. |
+struct NET_EXPORT_PRIVATE WriteResult { |
+ WriteResult(WriteStatus status, int bytes_written_or_error_code); |
+ WriteResult(); |
+ |
+ WriteStatus status; |
+ union { |
+ int bytes_written; // only valid when status is WRITE_STATUS_OK |
+ int error_code; // only valid when status is WRITE_STATUS_ERROR |
+ }; |
+}; |
+ |
+} // namespace net |
+ |
+#endif // NET_QUIC_QUIC_TYPES_H_ |