X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNetwork%2Fjpg-httpd.hxx;h=ce6e78acbbbd258fbfc0d50cdd5a349ccf342622;hb=d5b70e98e0673f27a127aae58bd26bdfe4730825;hp=e5adee5f15c8ce4f3110b878b5ba12991b6e0201;hpb=a38362646d4d65bd5255846352c5a4771d33968f;p=flightgear.git diff --git a/src/Network/jpg-httpd.hxx b/src/Network/jpg-httpd.hxx index e5adee5f1..ce6e78acb 100644 --- a/src/Network/jpg-httpd.hxx +++ b/src/Network/jpg-httpd.hxx @@ -1,5 +1,4 @@ -// httpd.hxx -- FGFS http property manager interface / external script -// and control class +// jpg-httpd.hxx -- FGFS jpg-http interface // // Written by Curtis Olson, started June 2001. // @@ -24,94 +23,25 @@ // // $Id$ - #ifndef _FG_JPEG_HTTPD_HXX #define _FG_JPEG_HTTPD_HXX -#include -#include - #include "protocol.hxx" +class HttpdImageServer; -/* simple httpd server that makes an hasty stab at following the http - 1.1 rfc. */ - -class HttpdImageChannel : public simgear::NetChat -{ - - simgear::NetBuffer buffer ; - trJpgFactory *JpgFactory; - -public: - - HttpdImageChannel() : buffer(512) { - - int nWidth = fgGetInt( "/sim/startup/xsize", 800 ); - int nHeight = fgGetInt( "/sim/startup/ysize", 600 ); - - setTerminator("\r\n"); - JpgFactory = new trJpgFactory(); - JpgFactory -> init( nWidth, nHeight ); - } - - ~HttpdImageChannel() { - JpgFactory -> destroy(); - delete JpgFactory; - } - - virtual void collectIncomingData (const char* s, int n) { - buffer.append(s,n); - } - - // Handle the actual http request - virtual void foundTerminator (void); -}; - - -class HttpdImageServer : private simgear::NetChannel +class FGJpegHttpd : public FGProtocol { - virtual bool writable (void) { return false ; } - - virtual void handleAccept (void) { - simgear::IPAddress addr ; - int handle = accept ( &addr ) ; - SG_LOG( SG_IO, SG_INFO, "Client " << addr.getHost() << ":" << addr.getPort() << " connected" ); - - HttpdImageChannel *hc = new HttpdImageChannel; - hc->setHandle ( handle ) ; - } - -public: - - HttpdImageServer ( int port ) { - open (); - bind( "", port ); - listen( 5 ); - - printf( "HttpdImage server started on port %d\n", port ) ; - } - -}; - - -class FGJpegHttpd : public FGProtocol { - int port; HttpdImageServer *imageServer; - -public: - inline FGJpegHttpd( int p ) { port = p; } - - inline ~FGJpegHttpd() { } +public: + FGJpegHttpd( int p ); + ~FGJpegHttpd(); bool open(); - bool process(); - bool close(); }; - #endif // _FG_JPEG_HTTPD_HXX