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

📄 ebfrm.h

📁 eybuild中文手册 eybuild中文手册 eybuild中文手册
💻 H
字号:
/* ebfrm.h - eybuild frame header file */

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

/*
modification history
--------------------
01b, 2006-11-10, newzy   mod EB_AUTO_HTONL(), EB_AUTO_NTOHL() to suppuprt 64bit
01b, 2006-04-09, newzy   support fastcgi
01a, 2005-12-25, newzy   create
*/

#ifndef _INC_EBUILD_FRM_H_
#define _INC_EBUILD_FRM_H_

#ifdef HAVE_FASTCGI
#   include <fcgi_stdio.h>
#else
#   include <stdio.h>
#endif /* HAVE_FASTCGI */

#include <time.h>
#include <ebdef.h>

#ifdef __cplusplus
extern "C" {
#endif

/* versions */
#define VER_EYBOX   	"1.1.2"
#define VER_WEB2BIN 	"1.1.2"
#define VER_CSP2BIN 	"1.1.2"
#define VER_CSPENGINE	"1.1.2"

/* WIN32 only */
#ifdef WIN32
#undef vsnprintf
#undef snprintf
#undef setmode
#define vsnprintf		_vsnprintf
#define snprintf		_snprintf
#define setmode		    _setmode

#ifndef HAVE_FASTCGI
#   undef fileno
#   define fileno		_fileno
#endif
#endif /* WIN32 */

/* zero length string */
#define ZERO_STR		""

/* for csp2bin */
#define MAX_CALL_DEPTH	6
#define goto_ERROR	    if (ERROR==__ret) goto ON_END
#define goto_page_end()	goto ON_END
#define pageExit(ret)	page_exit(ret)
#define page_exit(ret)	{__ret=(ret); goto ON_END;}

/* eybuild internal path, 
 * this value must same with the value in 
 * "/src/map/cspmap.map" and "/src/map/rommap.map"
 */
#define EB_VDIR				"/_ebvdir_/"
#define EB_DEFAULT_MAINPAGE	"/main.csp"

/* avaliable envirement */
#define EBENV_MAIN_PAGE			"EBENV_MAIN_PAGE"			
#define EBENV_PAGE_NOT_FOUND	"EBENV_PAGE_NOT_FOUND"	


/* for gcc -Wall option,
 * should add -DREMOVE_NOUSED_WARNING
 */
#ifndef REMOVE_NOUSED_WARNING
#define EB_REMOVE_NOUSED_WARNING()
#else
#define EB_REMOVE_NOUSED_WARNING()	\
    	__page_name=thispage->name,	\
    	__page_path=thispage->path,	\
    	__page_fullname=thispage->fullname
#endif /* REMOVE_NOUSED_WARNING */

/* 
* define macro G to accelerate coding
* EB_G_DISABLE is to undef G macro 
*/

#ifndef EB_DISABLED_G
	#if defined(G) || defined(GNext)
	# 	error G(x) or GNext(x), has been defined.
	#else
	#	define G(x)			getParameter(x)
	#	define GNext(x,y)	getParameterNext((x), (y))
	#endif
#endif /* EB_DISABLED_G */


/*
* EB_FREE 	- free dynamic space 
* EB_MALLOC - allocate dynamic space 
*/ 
#define MALLOC_ERROR		"Allocate memory failure"

#undef  EB_FREE
#define EB_FREE(p)	\
		if (p) {free(p); p=NULL;}

#undef  EB_MALLOC
#define EB_MALLOC(p, size)	\
		if (NULL == (p=malloc(size))) { \
			ebSendErrorLog(500, (MALLOC_ERROR)); \
			return ERROR; \
		} \
		memset(p, 0, (size))		


#define EBNTOHL(x)	((((x) & 0x000000ff) << 24) | \
			 (((x) & 0x0000ff00) <<  8) | \
			 (((x) & 0x00ff0000) >>  8) | \
			 (((x) & 0xff000000) >> 24))

#define EBHTONL(x)	((((x) & 0x000000ff) << 24) | \
			 (((x) & 0x0000ff00) <<  8) | \
			 (((x) & 0x00ff0000) >>  8) | \
			 (((x) & 0xff000000) >> 24))

/* auto convert BYTE-ORDER 
 * support 32bit and 64bit 
 */
#define EB_AUTO_HTONL(x)	((((*(short*)"ABCDEFG")&0xFF)==0x41) ? EBHTONL(x): (x))
#define EB_AUTO_NTOHL(x)	((((*(short*)"ABCDEFG")&0xFF)==0x41) ? EBHTONL(x): (x)) 

/* for compatibility with version 0.x.x */
#define EB_ROM_MAPLIST			EB_ROM_MAPFILE
#define EB_CSP_MAPLIST			EB_CSP_MAPFILE

#define EB_FILE_ID_BASE			0x00001000
#define EB_OPT_AUTOFLASH		0x10000000
#define EB_OPT_COMPRESSED		0x00010000

/* 
 *	Mime type list
 */
typedef struct EB_MIME_TYPE
{
	char *		    type;	    /* Mime type */
	char *		    ext;	    /* File extension */
} EB_MIME_TYPE;

/*  
 * rom file list
 */
typedef struct 
{
	char *			name;       /* name of file */
	unsigned char *	pdata;      /* data area */
    time_t			mtime;      /* last modified time */
	unsigned		options;	/* options */
} EB_ROM_MAPFILE;

/* cgi page hooks */
typedef int (*CGI_PAGE_HOOK)
	(
	int		calldepth,	/* stack depth */
	void *	handle,		/* page handle, used by @require */
	void *	ebfp		/* page buffer pointer */
	);

/* typedefs */
typedef struct EB_CSP_MAPFILE 
{
    char *          name;    	/* page name */
    CGI_PAGE_HOOK   func;       /* page hooks */
    int             bufsize;    /* page buffer size */
	unsigned		options;	/* options */
	unsigned char *	pdata;		/* data list */
} EB_CSP_MAPFILE;


/* externs */
extern int    strcmpin(char *s1, char *s2, int n);
extern char * ebgetenv(char *varname);
extern char * get_filename(char * fullname);

extern int ebSendError
    (
    int         errnum,     /* http error number */
    char *      errfmt, ... /* error message */
    );

#ifdef __cplusplus
}
#endif

#endif /* _INC_EBFRAME_H_ */

⌨️ 快捷键说明

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