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

📄 ebhandle.h

📁 eybuild中文手册 eybuild中文手册 eybuild中文手册
💻 H
字号:
/* ebhandle.h - handle CGI request and reqsponed */

/* Copyright(C) eyBuild Group, 2005, 2006. All Rights Reserved. */

/*
modification history
--------------------
01a, 2006-01-13, newzy   create
*/

#ifndef _INC_EBHANDLE_H_
#define _INC_EBHANDLE_H_

#include <ebfrm.h>
#include <ebenviron.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef CGI_ENTRY
#define CGI_ENTRY		main
#endif

#define EB_CGIMAIN		__eb_cgimain__
#define EB_USER_CGIMAIN	__usr_cgimain__

#define SET_USRMAIN_RAW2(name, prefix)	prefix ## name	
#define SET_USRMAIN_RAW(name, prefix)	SET_USRMAIN_RAW2(name, prefix)	
#define SET_USRMAIN(name)	SET_USRMAIN_RAW(name, EB_USER_CGIMAIN)

/* force add argument list,
 * used for C++ main(int, char*[], char*[])
 */
#ifdef HAVE_MAIN_ARGLIST
#define EB_MAIN_ARGLIST()	(int argc, char *argv[], char *env[])
#else
#define EB_MAIN_ARGLIST()	()
#endif

#ifdef HAVE_NO_CGIMAIN
#define cgimain CGI_ENTRY
#else /* HAVE_NO_CGIMAIN */
#define cgimain \
		CGI_ENTRY (int argc, char * argv[], char * env[]) {	\
			int SET_USRMAIN(CGI_ENTRY)EB_MAIN_ARGLIST();	\
			return  EB_CGIMAIN(argc, argv, env,		\
					(USR_FUNC)(SET_USRMAIN(CGI_ENTRY)));\
		}			\
		int SET_USRMAIN(CGI_ENTRY)
#endif

/* 
* begin fast cgi loop
* end fastcgi loop 
*/
#ifndef HAVE_FASTCGI
#	define BEGIN_FASTCGI_LOOP()
#	define END_FASTCGI_LOOP()
#else/* HAVE_FASTCGI  */
#define BEGIN_FASTCGI_LOOP()	\
   		while (FCGI_Accept() >= 0) {	\
			if (ERROR == ebRequestReset())	\
				break;

#define END_FASTCGI_LOOP()	\
   	}
#endif /* HAVE_FASTCGI */


/* defines */
#if 0
#define EB_IDMAP_ALL		0	/* default support IDMAP and pagename */
#define EB_IDMAP_DISABLE	1	/* disable IDMAP */
#define EB_IDMAP_ONLY		2	/* only support IDMAP */
#endif

#define EB_OPT_ROM_LOCAL_FS		(1<<0)	/* use local file system */
#define EB_OPT_CGI_LOCAL_FS		(1<<1)	/* use local file system */
#define EB_OPT_IDMAP_ENABLE		(1<<2)	/* disable IDMAP */
#define EB_OPT_VPATH_DISABLE	(1<<3)	/* use local file system */

#define EBTYPE_DISPATCH_MASK	0xF0
#define EBTYPE_DISPATCH_IDMAP	0x01

#define EBTYPE_DISPATCH_CGI		0x10
#define EBTYPE_DISPATCH_ROM		0x20
#define EBTYPE_UNKNOW			0x30


/* typedefs */
typedef int (*USR_FUNC)(int argc, char * argv[], char * env[]);


/* externs */
extern int ebSetDebug (char * p_method, char * p_query);
extern int eyBuildExec2(void *csplist, int size1, 
						void *romlist, int size2, 
						void *resloved
						);

/* check query */
extern char * ebGetRequestPageType();
extern char * ebGetRequestPageName();

/* map to ID */
extern char * ebCSPIDMap(char * pname, char * pbuf);
extern char * ebRomIDMap(char * pname, char * pbuf);

/* search page */
extern EB_ROM_MAPFILE * getRomPage(int rtype, char * pname);
extern EB_CSP_MAPFILE * getCSPPage(int rtype, char * pname);

/* cgi main entry */
extern int EB_CGIMAIN(int argc, char * argv[], char * env[], USR_FUNC usrmain);
extern int ebDefMimeHeader();

#ifdef __cplusplus
}
#endif

#endif /* _INC_EBHANDLE_H_ */


⌨️ 快捷键说明

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