⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fcgi.h

📁 C++ web POSIX framewark
💻 H
字号:
#ifndef FCGI_STREAM_H#define FCGI_STREAM_H#include "config.h"#include <string>#ifdef EN_FASTCGI_LONG_PATH	#include <fastcgi/fcgio.h>	#include <fastcgi/fcgiapp.h>#else	#include <fcgio.h>	#include <fcgiapp.h>#endif#include <cgicc/CgiInput.h>#include <boost/noncopyable.hpp>#include "cgi_api.h"#include "cgicc_connection.h"namespace cppcms {class fcgi_stream :	public cgicc::CgiInput,			public std::ostream,			private boost::noncopyable{	FCGX_Request &request;	fcgi_streambuf fcgi_cout;	fcgi_streambuf fcgi_cerr;	std::ostream   stream_cerr;public:	fcgi_stream(FCGX_Request &req);	virtual std::string getenv(const char *variable);	virtual size_t read(char *d,size_t len);	std::ostream &err();	virtual ~fcgi_stream();};class cgicc_connection_fast_cgi : public cgicc_connection {	fcgi_stream fcgi;	auto_ptr<cgicc::Cgicc> save_cgi;	public:	cgicc_connection_fast_cgi(FCGX_Request &req) :		fcgi(req),	save_cgi(new cgicc::Cgicc(&fcgi))	{};	virtual string env(char const *var){ return fcgi.getenv(var);};	virtual cgicc::Cgicc &cgi() { return *save_cgi; };	virtual ostream &cout() { return fcgi; };	virtual ~cgicc_connection_fast_cgi() {};};class fcgi_session : public cgi_session {	FCGX_Request *request;	cgicc_connection_fast_cgi *connection;public:	fcgi_session(FCGX_Request *r,cgicc_connection_fast_cgi *conn) :		request(r), connection(conn) {};	virtual cgicc_connection &get_connection();	virtual bool prepare();	virtual ~fcgi_session() {		delete connection;		delete request;	};};class fcgi_api : public cgi_api {	static pthread_once_t init_fcgi;	static void init(void);	int fd;public:	fcgi_api(char const *socket,int backlog);	virtual int get_socket() { return fd; };	virtual cgi_session *accept_session();	virtual ~fcgi_api();};} // Namespace#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -