Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1963)

Unified Diff: components/grpc_support/bidirectional_stream.h

Issue 2492703002: Third try at landing gRPC refactoring. Previous issue failed on the waterfall (Closed)
Patch Set: Change DCHECK Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/grpc_support/README.md ('k') | components/grpc_support/bidirectional_stream.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/grpc_support/bidirectional_stream.h
diff --git a/components/cronet/ios/cronet_bidirectional_stream.h b/components/grpc_support/bidirectional_stream.h
similarity index 87%
rename from components/cronet/ios/cronet_bidirectional_stream.h
rename to components/grpc_support/bidirectional_stream.h
index 9df7de1766f55db7bca49b8e06a6a9b31c442d80..d57cd87f4b87aba25dc5a121f27deae6d0f126ab 100644
--- a/components/cronet/ios/cronet_bidirectional_stream.h
+++ b/components/grpc_support/bidirectional_stream.h
@@ -2,8 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef COMPONENTS_CRONET_IOS_CRONET_BIDIRECTIONAL_STREAM_H_
-#define COMPONENTS_CRONET_IOS_CRONET_BIDIRECTIONAL_STREAM_H_
+#ifndef COMPONENTS_GRPC_SUPPORT_BIDIRECTIONAL_STREAM_H_
+#define COMPONENTS_GRPC_SUPPORT_BIDIRECTIONAL_STREAM_H_
#include <memory>
#include <vector>
@@ -13,15 +13,14 @@
#include "base/memory/weak_ptr.h"
#include "base/synchronization/lock.h"
#include "net/http/bidirectional_stream.h"
+#include "net/url_request/url_request_context_getter.h"
namespace net {
class HttpRequestHeaders;
class WrappedIOBuffer;
} // namespace net
-namespace cronet {
-
-class CronetEnvironment;
+namespace grpc_support {
// An adapter to net::BidirectionalStream.
// Created and configured from any thread. Start, ReadData, WriteData and
@@ -31,7 +30,7 @@ class CronetEnvironment;
// callbacks into the Delegate are done on the network thread.
// The app is expected to initiate the next step like ReadData or Destroy.
// Public methods can be called on any thread.
-class CronetBidirectionalStream : public net::BidirectionalStream::Delegate {
+class BidirectionalStream : public net::BidirectionalStream::Delegate {
public:
class Delegate {
public:
@@ -53,8 +52,9 @@ class CronetBidirectionalStream : public net::BidirectionalStream::Delegate {
virtual void OnCanceled() = 0;
};
- CronetBidirectionalStream(CronetEnvironment* environment, Delegate* delegate);
- ~CronetBidirectionalStream() override;
+ BidirectionalStream(net::URLRequestContextGetter* request_context_getter,
+ Delegate* delegate);
+ ~BidirectionalStream() override;
// Disables automatic flushing of each buffer passed to WriteData().
void disable_auto_flush(bool disable_auto_flush) {
@@ -119,7 +119,7 @@ class CronetBidirectionalStream : public net::BidirectionalStream::Delegate {
// Stream is canceled.
CANCELED,
// Error has occured, stream is closed.
- ERROR,
+ ERR,
// Reading and writing are done, and the stream is closed successfully.
SUCCESS,
// Waiting for Flush() to be called.
@@ -187,17 +187,21 @@ class CronetBidirectionalStream : public net::BidirectionalStream::Delegate {
void CancelOnNetworkThread();
void DestroyOnNetworkThread();
+ bool IsOnNetworkThread();
+ void PostToNetworkThread(const tracked_objects::Location& from_here,
+ const base::Closure& task);
+
// Read state is tracking reading flow. Only accessed on network thread.
- // / <--- READING <--- \
+ // | <--- READING <--- |
+ // | |
// | |
- // \ /
// NOT_STARTED -> STARTED --> WAITING_FOR_READ -> READING_DONE -> SUCCESS
State read_state_;
// Write state is tracking writing flow. Only accessed on network thread.
- // / <--- WRITING <--- \
+ // | <--- WRITING <--- |
+ // | |
// | |
- // \ /
// NOT_STARTED -> STARTED --> WAITING_FOR_FLUSH -> WRITING_DONE -> SUCCESS
State write_state_;
@@ -207,7 +211,7 @@ class CronetBidirectionalStream : public net::BidirectionalStream::Delegate {
bool disable_auto_flush_;
bool delay_headers_until_flush_;
- CronetEnvironment* const environment_;
+ net::URLRequestContextGetter* const request_context_getter_;
scoped_refptr<net::WrappedIOBuffer> read_buffer_;
@@ -221,12 +225,12 @@ class CronetBidirectionalStream : public net::BidirectionalStream::Delegate {
std::unique_ptr<net::BidirectionalStream> bidi_stream_;
Delegate* delegate_;
- base::WeakPtr<CronetBidirectionalStream> weak_this_;
- base::WeakPtrFactory<CronetBidirectionalStream> weak_factory_;
+ base::WeakPtr<BidirectionalStream> weak_this_;
+ base::WeakPtrFactory<BidirectionalStream> weak_factory_;
- DISALLOW_COPY_AND_ASSIGN(CronetBidirectionalStream);
+ DISALLOW_COPY_AND_ASSIGN(BidirectionalStream);
};
-} // namespace cronet
+} // namespace grpc_support
-#endif // COMPONENTS_CRONET_IOS_CRONET_BIDIRECTIONAL_STREAM_H_
+#endif // COMPONENTS_GRPC_SUPPORT_BIDIRECTIONAL_STREAM_H_
« no previous file with comments | « components/grpc_support/README.md ('k') | components/grpc_support/bidirectional_stream.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698