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

Side by Side Diff: content/browser/streams/stream.h

Issue 519533002: Initial PlzNavigate RDH-side logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 6 years, 3 months 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CONTENT_BROWSER_STREAMS_STREAM_H_ 5 #ifndef CONTENT_BROWSER_STREAMS_STREAM_H_
6 #define CONTENT_BROWSER_STREAMS_STREAM_H_ 6 #define CONTENT_BROWSER_STREAMS_STREAM_H_
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/memory/ref_counted.h" 9 #include "base/memory/ref_counted.h"
10 #include "base/memory/weak_ptr.h" 10 #include "base/memory/weak_ptr.h"
11 #include "content/browser/byte_stream.h" 11 #include "content/browser/byte_stream.h"
12 #include "content/common/content_export.h" 12 #include "content/common/content_export.h"
13 #include "url/gurl.h" 13 #include "url/gurl.h"
14 14
15 namespace net { 15 namespace net {
16 class HttpResponseHeaders; 16 class HttpResponseHeaders;
17 class IOBuffer; 17 class IOBuffer;
18 } 18 }
19 19
20 namespace content { 20 namespace content {
21 21
22 class StreamHandle; 22 class StreamHandle;
23 class StreamHandleImpl; 23 class StreamHandleImpl;
24 class StreamReadObserver; 24 class StreamReadObserver;
25 class StreamRegistry; 25 class StreamRegistry;
26 class StreamWriteObserver; 26 class StreamWriteObserver;
27 struct ResourceResponse;
27 28
28 // A stream that sends data from an arbitrary source to an internal URL 29 // A stream that sends data from an arbitrary source to an internal URL
29 // that can be read by an internal consumer. It will continue to pull from the 30 // that can be read by an internal consumer. It will continue to pull from the
30 // original URL as long as there is data available. It can be read from 31 // original URL as long as there is data available. It can be read from
31 // multiple clients, but only one can be reading at a time. This allows a 32 // multiple clients, but only one can be reading at a time. This allows a
32 // reader to consume part of the stream, then pass it along to another client 33 // reader to consume part of the stream, then pass it along to another client
33 // to continue processing the stream. 34 // to continue processing the stream.
34 class CONTENT_EXPORT Stream : public base::RefCountedThreadSafe<Stream> { 35 class CONTENT_EXPORT Stream : public base::RefCountedThreadSafe<Stream> {
35 public: 36 public:
36 enum StreamState { 37 enum StreamState {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 72
72 // Notifies this stream that it will not be receiving any more data. 73 // Notifies this stream that it will not be receiving any more data.
73 void Finalize(); 74 void Finalize();
74 75
75 // Reads a maximum of |buf_size| from the stream into |buf|. Sets 76 // Reads a maximum of |buf_size| from the stream into |buf|. Sets
76 // |*bytes_read| to the number of bytes actually read. 77 // |*bytes_read| to the number of bytes actually read.
77 // Returns STREAM_HAS_DATA if data was read, STREAM_EMPTY if no data was read, 78 // Returns STREAM_HAS_DATA if data was read, STREAM_EMPTY if no data was read,
78 // and STREAM_COMPLETE if the stream is finalized and all data has been read. 79 // and STREAM_COMPLETE if the stream is finalized and all data has been read.
79 StreamState ReadRawData(net::IOBuffer* buf, int buf_size, int* bytes_read); 80 StreamState ReadRawData(net::IOBuffer* buf, int buf_size, int* bytes_read);
80 81
81 scoped_ptr<StreamHandle> CreateHandle( 82 scoped_ptr<StreamHandle> CreateHandle();
82 const GURL& original_url,
83 const std::string& mime_type,
84 scoped_refptr<net::HttpResponseHeaders> response_headers);
85 void CloseHandle(); 83 void CloseHandle();
86 84
87 // Indicates whether there is space in the buffer to add more data. 85 // Indicates whether there is space in the buffer to add more data.
88 bool can_add_data() const { return can_add_data_; } 86 bool can_add_data() const { return can_add_data_; }
89 87
90 const GURL& url() const { return url_; } 88 const GURL& url() const { return url_; }
91 89
92 // For StreamRegistry to remember the last memory usage reported to it. 90 // For StreamRegistry to remember the last memory usage reported to it.
93 size_t last_total_buffered_bytes() const { 91 size_t last_total_buffered_bytes() const {
94 return last_total_buffered_bytes_; 92 return last_total_buffered_bytes_;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 129
132 StreamHandleImpl* stream_handle_; 130 StreamHandleImpl* stream_handle_;
133 131
134 base::WeakPtrFactory<Stream> weak_ptr_factory_; 132 base::WeakPtrFactory<Stream> weak_ptr_factory_;
135 DISALLOW_COPY_AND_ASSIGN(Stream); 133 DISALLOW_COPY_AND_ASSIGN(Stream);
136 }; 134 };
137 135
138 } // namespace content 136 } // namespace content
139 137
140 #endif // CONTENT_BROWSER_STREAMS_STREAM_H_ 138 #endif // CONTENT_BROWSER_STREAMS_STREAM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698