| 
									
										
										
										
											2019-04-07 14:36:10 +02:00
										 |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <LibGUI/GNetworkJob.h>
 | 
					
						
							|  |  |  | #include <LibGUI/GHttpRequest.h>
 | 
					
						
							| 
									
										
										
										
											2019-04-07 19:35:07 +02:00
										 |  |  | #include <AK/HashMap.h>
 | 
					
						
							| 
									
										
										
										
											2019-04-07 14:36:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | class GTCPSocket; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-08 02:24:34 +02:00
										 |  |  | class GHttpJob final : public GNetworkJob { | 
					
						
							| 
									
										
										
										
											2019-04-07 14:36:10 +02:00
										 |  |  | public: | 
					
						
							| 
									
										
										
										
											2019-04-08 02:24:34 +02:00
										 |  |  |     explicit GHttpJob(const GHttpRequest&); | 
					
						
							|  |  |  |     virtual ~GHttpJob() override; | 
					
						
							| 
									
										
										
										
											2019-04-07 14:36:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     virtual void start() override; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-08 02:24:34 +02:00
										 |  |  |     virtual const char* class_name() const override { return "GHttpJob"; } | 
					
						
							| 
									
										
										
										
											2019-04-07 14:36:10 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | private: | 
					
						
							| 
									
										
										
										
											2019-04-07 19:35:07 +02:00
										 |  |  |     enum class State { | 
					
						
							|  |  |  |         InStatus, | 
					
						
							|  |  |  |         InHeaders, | 
					
						
							|  |  |  |         InBody, | 
					
						
							|  |  |  |         Finished, | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-04-07 14:36:10 +02:00
										 |  |  |     GHttpRequest m_request; | 
					
						
							|  |  |  |     GTCPSocket* m_socket { nullptr }; | 
					
						
							| 
									
										
										
										
											2019-04-07 19:35:07 +02:00
										 |  |  |     State m_state { State::InStatus }; | 
					
						
							|  |  |  |     int m_code { -1 }; | 
					
						
							|  |  |  |     HashMap<String, String> m_headers; | 
					
						
							| 
									
										
										
										
											2019-04-07 14:36:10 +02:00
										 |  |  | }; |