| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  | // Copyright (c) 2015 GitHub, Inc.
 | 
					
						
							|  |  |  | // Use of this source code is governed by the MIT license that can be
 | 
					
						
							|  |  |  | // found in the LICENSE file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef ATOM_BROWSER_NET_URL_REQUEST_FETCH_JOB_H_
 | 
					
						
							|  |  |  | #define ATOM_BROWSER_NET_URL_REQUEST_FETCH_JOB_H_
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-17 11:34:47 +08:00
										 |  |  | #include <string>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 21:10:44 +05:30
										 |  |  | #include "net/url_request/url_request_context_getter.h"
 | 
					
						
							| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  | #include "net/url_request/url_fetcher_delegate.h"
 | 
					
						
							|  |  |  | #include "net/url_request/url_request_job.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace atom { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-18 17:18:11 +08:00
										 |  |  | class AtomBrowserContext; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  | class URLRequestFetchJob : public net::URLRequestJob, | 
					
						
							| 
									
										
										
										
											2015-06-17 09:31:33 +08:00
										 |  |  |                            public net::URLFetcherDelegate { | 
					
						
							| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  |  public: | 
					
						
							| 
									
										
										
										
											2015-08-10 15:28:18 +08:00
										 |  |  |   URLRequestFetchJob(scoped_refptr<net::URLRequestContextGetter> context_getter, | 
					
						
							| 
									
										
										
										
											2015-07-15 18:05:38 +05:30
										 |  |  |                      net::URLRequest* request, | 
					
						
							| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  |                      net::NetworkDelegate* network_delegate, | 
					
						
							| 
									
										
										
										
											2015-06-17 10:57:26 +08:00
										 |  |  |                      const GURL& url, | 
					
						
							| 
									
										
										
										
											2015-06-17 11:20:09 +08:00
										 |  |  |                      const std::string& method, | 
					
						
							|  |  |  |                      const std::string& referrer); | 
					
						
							| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-07-13 21:10:44 +05:30
										 |  |  |   net::URLRequestContextGetter* GetRequestContext(); | 
					
						
							| 
									
										
										
										
											2015-06-17 09:31:33 +08:00
										 |  |  |   void HeadersCompleted(); | 
					
						
							| 
									
										
										
										
											2015-06-17 10:19:58 +08:00
										 |  |  |   int DataAvailable(net::IOBuffer* buffer, int num_bytes); | 
					
						
							| 
									
										
										
										
											2015-06-17 09:31:33 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  |   // net::URLRequestJob:
 | 
					
						
							|  |  |  |   void Start() override; | 
					
						
							|  |  |  |   void Kill() override; | 
					
						
							|  |  |  |   bool ReadRawData(net::IOBuffer* buf, | 
					
						
							|  |  |  |                    int buf_size, | 
					
						
							|  |  |  |                    int* bytes_read) override; | 
					
						
							| 
									
										
										
										
											2015-06-17 09:31:33 +08:00
										 |  |  |   bool GetMimeType(std::string* mime_type) const override; | 
					
						
							|  |  |  |   void GetResponseInfo(net::HttpResponseInfo* info) override; | 
					
						
							|  |  |  |   int GetResponseCode() const override; | 
					
						
							| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |   // net::URLFetcherDelegate:
 | 
					
						
							|  |  |  |   void OnURLFetchComplete(const net::URLFetcher* source) override; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  private: | 
					
						
							| 
									
										
										
										
											2015-07-13 21:10:44 +05:30
										 |  |  |   scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; | 
					
						
							| 
									
										
										
										
											2015-06-16 17:08:53 +08:00
										 |  |  |   scoped_ptr<net::URLFetcher> fetcher_; | 
					
						
							| 
									
										
										
										
											2015-06-17 10:19:58 +08:00
										 |  |  |   scoped_refptr<net::IOBuffer> pending_buffer_; | 
					
						
							|  |  |  |   int pending_buffer_size_; | 
					
						
							| 
									
										
										
										
											2015-06-17 09:31:33 +08:00
										 |  |  |   scoped_ptr<net::HttpResponseInfo> response_info_; | 
					
						
							| 
									
										
										
										
											2015-05-29 21:24:00 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |   DISALLOW_COPY_AND_ASSIGN(URLRequestFetchJob); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | }  // namespace atom
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif  // ATOM_BROWSER_NET_URL_REQUEST_FETCH_JOB_H_
 |