| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  | // Copyright (c) 2017 GitHub, Inc.
 | 
					
						
							|  |  |  | // Use of this source code is governed by the MIT license that can be
 | 
					
						
							|  |  |  | // found in the LICENSE file.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  | #ifndef ATOM_BROWSER_IO_THREAD_H_
 | 
					
						
							|  |  |  | #define ATOM_BROWSER_IO_THREAD_H_
 | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | #include <memory>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "base/macros.h"
 | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  | #include "base/memory/scoped_refptr.h"
 | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  | #include "content/public/browser/browser_thread_delegate.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace net { | 
					
						
							|  |  |  | class URLRequestContext; | 
					
						
							| 
									
										
										
										
											2018-03-15 15:29:16 +09:00
										 |  |  | class URLRequestContextGetter; | 
					
						
							| 
									
										
										
										
											2018-04-17 21:46:27 -04:00
										 |  |  | }  // namespace net
 | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  | namespace net_log { | 
					
						
							|  |  |  | class ChromeNetLog; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace atom { | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  | class IOThread : public content::BrowserThreadDelegate { | 
					
						
							|  |  |  |  public: | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  |   explicit IOThread(net_log::ChromeNetLog* net_log); | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  |   ~IOThread() override; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-15 15:29:16 +09:00
										 |  |  |   net::URLRequestContextGetter* GetRequestContext() { | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  |     return url_request_context_getter_.get(); | 
					
						
							| 
									
										
										
										
											2018-03-15 15:29:16 +09:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  |  protected: | 
					
						
							|  |  |  |   // BrowserThreadDelegate Implementation, runs on the IO thread.
 | 
					
						
							|  |  |  |   void Init() override; | 
					
						
							|  |  |  |   void CleanUp() override; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |  private: | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  |   // The NetLog is owned by the browser process, to allow logging from other
 | 
					
						
							|  |  |  |   // threads during shutdown, but is used most frequently on the IOThread.
 | 
					
						
							|  |  |  |   net_log::ChromeNetLog* net_log_; | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  |   std::unique_ptr<net::URLRequestContext> url_request_context_; | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  |   scoped_refptr<net::URLRequestContextGetter> url_request_context_getter_; | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  | 
 | 
					
						
							|  |  |  |   DISALLOW_COPY_AND_ASSIGN(IOThread); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  | }  // namespace atom
 | 
					
						
							| 
									
										
										
										
											2017-12-18 17:27:20 +05:30
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-10-04 23:38:56 +05:30
										 |  |  | #endif  // ATOM_BROWSER_IO_THREAD_H_
 |