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