X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=include%2Ffcgio.h;h=20d222ab6b5254acea2f182fe7473fed7b98ad19;hb=3c752ddfc824ddd3581756c04b8267b0d6922fca;hp=76e47350f0fce6e813963246bb9fcdbd3efa6bd0;hpb=df70e7436471a2a5d101011252098b8c2381425a;p=catagits%2Ffcgi2.git diff --git a/include/fcgio.h b/include/fcgio.h index 76e4735..20d222a 100644 --- a/include/fcgio.h +++ b/include/fcgio.h @@ -1,7 +1,7 @@ // // Provides support for FastCGI via C++ iostreams. // -// $Id: fcgio.h,v 1.11 2001/11/26 19:03:12 robs Exp $ +// $Id: fcgio.h,v 1.15 2002/02/25 13:16:11 robs Exp $ // // This work is based on routines written by George Feinberg. They // have been mostly re-written and extensively changed by @@ -30,7 +30,7 @@ #ifndef FCGIO_H #define FCGIO_H -#include +#include #include "fcgiapp.h" @@ -42,10 +42,14 @@ #endif #endif +#if ! HAVE_STREAMBUF_CHAR_TYPE +typedef char char_type; +#endif + /* * fcgi_streambuf */ -class fcgi_streambuf : public streambuf +class DLLAPI fcgi_streambuf : public std::streambuf { public: @@ -54,51 +58,50 @@ public: // assigned, I/O is a bit less effecient and output streams will // have to be flushed (or the streambuf destroyed) before the next // call to "accept". - DLLAPI fcgi_streambuf(FCGX_Stream * fcgx, char * buf, int len); + fcgi_streambuf(FCGX_Stream * fcgx, char * buf, int len); - DLLAPI fcgi_streambuf(char * buf, int len); + fcgi_streambuf(char_type * buf, std::streamsize len); - DLLAPI fcgi_streambuf(FCGX_Stream * fcgx = NULL); + fcgi_streambuf(FCGX_Stream * fcgx = 0); - DLLAPI ~fcgi_streambuf(void); + ~fcgi_streambuf(void); - DLLAPI int attach(FCGX_Stream * fcgx); + int attach(FCGX_Stream * fcgx); protected: // Consume the put area (if buffered) and c (if c is not EOF). - DLLAPI virtual int overflow(int); + virtual int overflow(int); // Flush the put area (if buffered) and the FCGX buffer to the client. - // Note: sync() is protected in some implementations. - DLLAPI virtual int sync(); + virtual int sync(); // Remove and return the current character. - DLLAPI virtual int uflow(); + virtual int uflow(); // Fill the get area (if buffered) and return the current character. - DLLAPI virtual int underflow(); + virtual int underflow(); // Use a buffer. The only reasons that a buffer would be useful is // to support the use of the unget()/putback() or seek() methods. Using // a buffer will result in less efficient I/O. Note: the underlying // FastCGI library (FCGX) maintains its own input and output buffers. - DLLAPI virtual streambuf * setbuf(char * buf, int len); + virtual std::streambuf * setbuf(char_type * buf, std::streamsize len); - DLLAPI virtual int xsgetn(char * s, int n); - DLLAPI virtual int xsputn(const char * s, int n); + virtual std::streamsize xsgetn(char_type * s, std::streamsize n); + virtual std::streamsize xsputn(const char_type * s, std::streamsize n); private: FCGX_Stream * fcgx; // buf is just handy to have around - char * buf; + char_type * buf; // this isn't kept by the base class - int bufsize; + std::streamsize bufsize; - void init(FCGX_Stream * fcgx, char * buf, int bufsize); + void init(FCGX_Stream * fcgx, char_type * buf, std::streamsize bufsize); void reset(void); }; @@ -106,18 +109,18 @@ private: /* * fcgi_istream - deprecated */ -class fcgi_istream : public istream +class DLLAPI fcgi_istream : public std::istream { public: // deprecated - DLLAPI fcgi_istream(FCGX_Stream * fcgx = NULL); + fcgi_istream(FCGX_Stream * fcgx = 0); // deprecated - DLLAPI ~fcgi_istream(void) {} + ~fcgi_istream(void) {} // deprecated - DLLAPI virtual void attach(FCGX_Stream * fcgx); + virtual void attach(FCGX_Stream * fcgx); private: @@ -127,18 +130,18 @@ private: /* * fcgi_ostream - deprecated */ -class fcgi_ostream : public ostream +class DLLAPI fcgi_ostream : public std::ostream { public: // deprecated - DLLAPI fcgi_ostream(FCGX_Stream * fcgx = NULL); + fcgi_ostream(FCGX_Stream * fcgx = 0); // deprecated - DLLAPI ~fcgi_ostream(void) {} + ~fcgi_ostream(void) {} // deprecated - DLLAPI virtual void attach(FCGX_Stream *fcgx); + virtual void attach(FCGX_Stream *fcgx); private: