X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNetwork%2Fjpg-httpd.hxx;h=95568c054161d1fdd981783768076c675a05fbe6;hb=b0dcb657e77579ecc79798ff365737095f96f9e2;hp=f6ac5713ac5f5bb37603b136190e90d4614549b7;hpb=d05121ef4689d2b50b3fe1848cbb0d1f5a1db877;p=flightgear.git diff --git a/src/Network/jpg-httpd.hxx b/src/Network/jpg-httpd.hxx index f6ac5713a..95568c054 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. // @@ -20,116 +19,32 @@ // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software -// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. // // $Id$ - #ifndef _FG_JPEG_HTTPD_HXX #define _FG_JPEG_HTTPD_HXX -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#ifdef FG_JPEG_SERVER -# include -#else -// dummy it in to keep the compiler happy -class trJpgFactory { -public: - trJpgFactory(); - void init(int, int); - void destroy(); - int render(); - void *data(); -}; -#endif +#include // for auto_ptr +#include #include "protocol.hxx" -class trJpgFactory; - - -/* simple httpd server that makes an hasty stab at following the http - 1.1 rfc. */ - -class HttpdImageChannel : public netChat -{ - - netBuffer buffer ; - trJpgFactory *JpgFactory; - -public: - - HttpdImageChannel() : buffer(512) { - setTerminator("\r\n"); - JpgFactory = new trJpgFactory(); - - // This is a terrible hack but it can't be initialized until - // after OpenGL is up an running - JpgFactory->init(400,300); - } - - ~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); -}; - +// forward decls +class HttpdThread; -class HttpdImageServer : private netChannel +class FGJpegHttpd : public FGProtocol { - virtual bool writable (void) { return false ; } - - virtual void handleAccept (void) { - netAddress addr ; - int handle = accept ( &addr ) ; - printf("Client %s:%d connected\n", addr.getHost(), addr.getPort()); - - 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 ) ; - } - -}; - + std::auto_ptr _imageServer; -class FGJpegHttpd : public FGProtocol { - - int port; - HttpdImageServer *imageServer; - public: - - inline FGJpegHttpd( int p ) { port = p; } - - inline ~FGJpegHttpd() { } + FGJpegHttpd( int p, int hz, const std::string& type ); + ~FGJpegHttpd(); bool open(); - bool process(); - bool close(); }; - #endif // _FG_JPEG_HTTPD_HXX