Initial repository.
This commit is contained in:
		
						commit
						cf08375d32
					
				
							
								
								
									
										27
									
								
								HTTPServer.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								HTTPServer.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| #ifndef __HTTPServer_h__ | ||||
| #define __HTTPServer_h__ | ||||
| 
 | ||||
| #include "includes" | ||||
| #include "EPoll.h" | ||||
| #include "TCPServerSocket.h" | ||||
| #include "Session.h" | ||||
| #include "IPAddress.h" | ||||
| #include "HTTPService.h" | ||||
| 
 | ||||
| namespace http { | ||||
| 
 | ||||
|    class HTTPServer : public core::TCPServerSocket { | ||||
|        | ||||
|     public: | ||||
|       HTTPServer(core::EPoll &ePoll, core::IPAddress address) : core::TCPServerSocket(ePoll, address) {} | ||||
|        | ||||
|     protected: | ||||
|       core::Service * getService() override { | ||||
| 	 return new HTTPService(*this); | ||||
|       }	    | ||||
|      | ||||
|    };    | ||||
|     | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										26
									
								
								HTTPServer.h~
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								HTTPServer.h~
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,26 @@ | ||||
| #ifndef __HTTPServer_h__ | ||||
| #define __HTTPServer_h__ | ||||
| 
 | ||||
| #include "includes" | ||||
| #include "EPoll.h" | ||||
| #include "TCPServerSocket.h" | ||||
| #include "Session.h" | ||||
| #include "IPAddress.h" | ||||
| 
 | ||||
| namespace http { | ||||
| 
 | ||||
|    class HTTPServer : public core::TCPServerSocket { | ||||
|        | ||||
|     public: | ||||
|       HTTPServer(core::EPoll &ePoll, core::IPAddress address) : core::TCPServerSocket(ePoll, address) {} | ||||
|        | ||||
|     protected: | ||||
|       core::Service * getService() override { | ||||
| 	 return new HTTPService(*this); | ||||
|       }	    | ||||
|      | ||||
|    };    | ||||
|     | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										27
									
								
								HTTPService.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								HTTPService.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,27 @@ | ||||
| #ifndef __HTTPService_h__ | ||||
| #define __HTTPService_h__ | ||||
| 
 | ||||
| #include "Service.h" | ||||
| #include "HTTPServer.h" | ||||
| #include "_GET.h" | ||||
| #include "_POST.h" | ||||
| 
 | ||||
| namespace http { | ||||
|     | ||||
|    class HTTPService : public core::Service { | ||||
| 
 | ||||
|     public: | ||||
|       HTTPService::HTTPService(HTTPServer &server) : core::Service(server) {	    | ||||
| 	 commands.add(get, "GET "); | ||||
| 	 commands.add(post, "POST "); | ||||
|       }       | ||||
|        | ||||
|     private: | ||||
|       _GET get; | ||||
|       _POST post; | ||||
|        | ||||
|    }; | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										30
									
								
								_GET.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								_GET.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,30 @@ | ||||
| #ifndef ___GET_h__ | ||||
| #define ___GET_h__ | ||||
| 
 | ||||
| #include "Command.h" | ||||
| #include "Session.h" | ||||
| #include "Header.h" | ||||
| #include "Response.h" | ||||
| 
 | ||||
| namespace http { | ||||
|     | ||||
|    class _GET : public core::Command { | ||||
|     | ||||
|     public: | ||||
|       int processCommand(std::string request, core::Session *session) override { | ||||
| 	 core::Header header(request); | ||||
| 	 std::string data = "<html><head></head><body><h1>This Is A Test</h1></body></html>";	  | ||||
| 	 core::Response response(); | ||||
| 	 response.setProtocol(header.getProtocol()); | ||||
| 	 response.setCode("200"); | ||||
| 	 response.setText("OK"); | ||||
| 	 response.setMimeType("text/html"); | ||||
| 	 session->out << response.getOutput(data);  | ||||
| 	 session->send();	 	  | ||||
|       }       | ||||
|        | ||||
|    }; | ||||
|        | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										28
									
								
								_GET.h~
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								_GET.h~
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | ||||
| #ifndef ___GET_h__ | ||||
| #define ___GET_h__ | ||||
| 
 | ||||
| #include "Command.h" | ||||
| #include "Session.h" | ||||
| 
 | ||||
| namespace http { | ||||
|     | ||||
|    class _GET : public core::Command { | ||||
|     | ||||
|     public: | ||||
|       int processCommand(std::string request, core::Session *session) override { | ||||
| 	 core::Header header(request); | ||||
| 	 std::string data = "<html><head></head><body><h1>This Is A Test</h1></body></html>";	  | ||||
| 	 core::Response response(); | ||||
| 	 response.setProtocol(header.getProtocol()); | ||||
| 	 response.setCode("200"); | ||||
| 	 response.setText("OK"); | ||||
| 	 response.setMimeType("text/html"); | ||||
| 	 session->out << response.getOutput(data);  | ||||
| 	 session->send();	 	  | ||||
|       }       | ||||
|        | ||||
|    }; | ||||
|        | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										24
									
								
								_POST.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								_POST.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| #ifndef ___POST_h__ | ||||
| #define ___POST_h__ | ||||
| 
 | ||||
| #include "Command.h" | ||||
| #include "Session.h" | ||||
| 
 | ||||
| namespace http { | ||||
|     | ||||
|    class _POST : public core::Command { | ||||
|     | ||||
|     public: | ||||
|       int processCommand(std::string request, core::Session &session) override { | ||||
| 	 core::Header header(request); | ||||
| 	 std::string data = "<html><head></head><body><h1>This Is A Test</h1></body></html>";	  | ||||
| 	 core::Response response(); | ||||
| 	 session.out << response.getOutput(data);  | ||||
| 	 session.send();	 	  | ||||
|       }       | ||||
|        | ||||
|    }; | ||||
|        | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
							
								
								
									
										31
									
								
								compile
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								compile
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,31 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| #for file in *.cpp | ||||
| #do | ||||
| #   filename="${file%.*}" | ||||
| #   list="$list $filename.o"   | ||||
| #   echo -n "Compiling $filename..." | ||||
| #   g++ -c $file -I../ServerCore | ||||
| #   if [ $? = '0' ] | ||||
| #   then | ||||
| #    echo "OK" | ||||
| #   else | ||||
| #    echo "ERROR" | ||||
| #    exit -1 | ||||
| #   fi    | ||||
|     | ||||
| done | ||||
| 
 | ||||
| wait | ||||
| echo -n "Building static library libServerCore.a..." | ||||
| ar rcs libServerCore.a $list | ||||
| if [ $? = '0' ] | ||||
| then | ||||
|  echo "OK" | ||||
| else | ||||
|  echo "ERROR" | ||||
|  exit -1 | ||||
| fi    | ||||
| 
 | ||||
| rm *.o | ||||
| rm *~ | ||||
							
								
								
									
										31
									
								
								compile~
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										31
									
								
								compile~
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,31 @@ | ||||
| #!/bin/bash | ||||
| 
 | ||||
| for file in *.cpp | ||||
| do | ||||
|    filename="${file%.*}" | ||||
|    list="$list $filename.o"   | ||||
|    echo -n "Compiling $filename..." | ||||
|    g++ -c $file -I../ServerCore | ||||
|    if [ $? = '0' ] | ||||
|    then | ||||
|     echo "OK" | ||||
|    else | ||||
|     echo "ERROR" | ||||
|     exit -1 | ||||
|    fi    | ||||
|     | ||||
| done | ||||
| 
 | ||||
| wait | ||||
| echo -n "Building static library libServerCore.a..." | ||||
| ar rcs libServerCore.a $list | ||||
| if [ $? = '0' ] | ||||
| then | ||||
|  echo "OK" | ||||
| else | ||||
|  echo "ERROR" | ||||
|  exit -1 | ||||
| fi    | ||||
| 
 | ||||
| rm *.o | ||||
| rm *~ | ||||
							
								
								
									
										41
									
								
								main.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								main.cpp
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| #include "includes" | ||||
| #include "EPoll.h" | ||||
| #include "ConsoleServer.h" | ||||
| #include "HTTPServer.h" | ||||
| #include "Exception.h" | ||||
| #include "File.h" | ||||
| #include "Log.h" | ||||
| #include "IPAddress.h" | ||||
| 
 | ||||
| int main(int argc, char **argv) { | ||||
| 
 | ||||
|    try { | ||||
| 
 | ||||
|       core::Log(new core::File("/tmp/http.log", O_WRONLY | O_APPEND | O_CREAT, 0644)); | ||||
|       core::Log(core::LOG_INFO) << "HTTP Server starting. Build " << __DATE__ << " " << __TIME__; | ||||
| 
 | ||||
|       std::string ipAddress = "0.0.0.0"; | ||||
|     | ||||
|       EPoll ePoll; | ||||
|        | ||||
|       core::HTTPServer http(ePoll, core::IPAddress(ipAddress, 8090), "http"); | ||||
| 
 | ||||
|       core::ConsoleServer console(ePoll, core::IPAddress(ipAddress, 1027)); | ||||
|       console.service->commands.add(ePoll); | ||||
|       console.service->commands.add(http);  | ||||
|       console.service->commands.add(console); | ||||
|       ePoll.start(4, 1000); | ||||
| 
 | ||||
|       while(true) | ||||
|         sleep(300); | ||||
|     | ||||
|       ePoll.stop(); | ||||
|     | ||||
|    } | ||||
| 
 | ||||
|    catch(core::Exception exception) { | ||||
|       std::cout << exception.text << " Error reason is '" << strerror(exception.errorNumber) << "' in file " << exception.file << " at line " << exception.line << std::endl; | ||||
|       sleep(10); | ||||
|    } | ||||
|     | ||||
| } | ||||
							
								
								
									
										41
									
								
								main.cpp~
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										41
									
								
								main.cpp~
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,41 @@ | ||||
| #include "includes" | ||||
| #include "EPoll.h" | ||||
| #include "ConsoleServer.h" | ||||
| #include "HTTPServer.h" | ||||
| #include "Exception.h" | ||||
| #include "File.h" | ||||
| #include "Log.h" | ||||
| #include "IPAddress.h" | ||||
| 
 | ||||
| int main(int argc, char **argv) { | ||||
| 
 | ||||
|    try { | ||||
| 
 | ||||
|       core::Log(new core::File("/tmp/http.log", O_WRONLY | O_APPEND | O_CREAT, 0644)); | ||||
|       core::Log(core::LOG_INFO) << "HTTP Server starting. Build " << __DATE__ << " " << __TIME__; | ||||
| 
 | ||||
|       std::string ipAddress = "0.0.0.0"; | ||||
|     | ||||
|       EPoll ePoll; | ||||
|        | ||||
|       core::HTTPServer http(ePoll, core::IPAddress(ipAddress, 8090), "http"); | ||||
| 
 | ||||
|       core::ConsoleServer console(ePoll, core::IPAddress(ipAddress, 1027)); | ||||
|       console.service.commands.add(ePoll); | ||||
|       console.service.commands.add(http);  | ||||
|       console.service.commands.add(console); | ||||
|       ePoll.start(4, 1000); | ||||
| 
 | ||||
|       while(true) | ||||
|         sleep(300); | ||||
|     | ||||
|       ePoll.stop(); | ||||
|     | ||||
|    } | ||||
| 
 | ||||
|    catch(core::Exception exception) { | ||||
|       std::cout << exception.text << " Error reason is '" << strerror(exception.errorNumber) << "' in file " << exception.file << " at line " << exception.line << std::endl; | ||||
|       sleep(10); | ||||
|    } | ||||
|     | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Brad Arant
						Brad Arant