亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? esp.h

?? samba最新軟件
?? H
字號:
/** *	@file 	esp.h *	@brief 	Header for Embedded Server Pages (ESP) *//********************************* Copyright **********************************//* *	@copy	default *	 *	Copyright (c) Mbedthis Software LLC, 2003-2005. All Rights Reserved. *	 *	This software is distributed under commercial and open source licenses. *	You may use the GPL open source license described below or you may acquire  *	a commercial license from Mbedthis Software. You agree to be fully bound  *	by the terms of either license. Consult the LICENSE.TXT distributed with  *	this software for full details. *	 *	This software is open source; you can redistribute it and/or modify it  *	under the terms of the GNU General Public License as published by the  *	Free Software Foundation; either version 2 of the License, or (at your  *	option) any later version. See the GNU General Public License for more  *	details at: http://www.mbedthis.com/downloads/gplLicense.html *	 *	This program is distributed WITHOUT ANY WARRANTY; without even the  *	implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  *	 *	This GPL license does NOT permit incorporating this software into  *	proprietary programs. If you are unable to comply with the GPL, you must *	acquire a commercial license to use this software. Commercial licenses  *	for this software and support services are available from Mbedthis  *	Software at http://www.mbedthis.com  *	 *	@end *//********************************** Includes **********************************/#ifndef _h_ESP_h#define _h_ESP_h 1#include	"lib/appweb/ejs/ejs.h"#include	"lib/appweb/esp/espEnv.h"#include	"lib/appweb/mpr/var.h"#include	"lib/appweb/mpr/miniMpr.h"/*********************************** Defines **********************************/#if BLD_FEATURE_SQUEEZE#define ESP_TOK_INCR 			1024#define ESP_MAX_HEADER 			1024#else#define ESP_TOK_INCR 			4096#define ESP_MAX_HEADER 			4096#endif/* *	ESP lexical analyser tokens */#define ESP_TOK_ERR				-1			/* Any input error */#define ESP_TOK_EOF				0			/* End of file */#define ESP_TOK_START_ESP		1			/* <% */#define ESP_TOK_END_ESP			2			/* %> */#define ESP_TOK_ATAT			3			/* @@var */#define ESP_TOK_LITERAL			4			/* literal HTML */#define ESP_TOK_INCLUDE			5			/* include file.esp */#define ESP_TOK_EQUALS			6			/* = var *//* *	ESP parser states */#define ESP_STATE_BEGIN			1			/* Starting state */#define ESP_STATE_IN_ESP_TAG	2			/* Inside a <% %> group *//*********************************** Types ************************************/typedef void* EspHandle;					/* Opaque Web server handle type *//* *	Per request control block */typedef struct EspRequest {	MprStr		docPath;					/* Physical path for ESP page */		EjsId		eid;						/* EJS instance handle */	const struct Esp	*esp;				/* Pointer to ESP control block */	EspHandle	requestHandle;				/* Per request web server handle */	MprStr		uri;						/* Request URI */			MprVar		*variables;					/* Pointer to variables */} EspRequest;/* *	Master ESP control block. This defines the function callbacks for a  *	web server handler to implement. ESP will call these functions as *	required. */typedef struct Esp {	int		maxScriptSize;	void	(*createSession)(EspHandle handle, int timeout);	void	(*destroySession)(EspHandle handle);	const char *(*getSessionId)(EspHandle handle);	int		(*mapToStorage)(EspHandle handle, char *path, int len, const char *uri,				int flags);	int		(*readFile)(EspHandle handle, char **buf, int *len, const char *path);	void	(*redirect)(EspHandle handle, int code, char *url);	void 	(*setCookie)(EspHandle handle, const char *name, const char *value, 				int lifetime, const char *path, bool secure);	void	(*setHeader)(EspHandle handle, const char *value, bool allowMultiple);	void	(*setResponseCode)(EspHandle handle, int code);	int		(*writeBlock)(EspHandle handle, const char *buf, int size);	int		(*writeFmt)(EspHandle handle, char *fmt, ...);#if BLD_FEATURE_MULTITHREAD	void 	(*lock)(void *lockData);	void 	(*unlock)(void *lockData);	void	*lockData;#endif} Esp;/* *	ESP parse context */typedef struct {	char 	*inBuf;					/* Input data to parse */	char 	*inp;					/* Next character for input */	char	*endp;					/* End of storage (allow for null) */	char	*tokp;					/* Pointer to current parsed token */	char	*token;					/* Storage buffer for token */	int		tokLen;					/* Length of buffer */} EspParse;/******************************** Private APIs ********************************/extern void			espRegisterProcs(void);/******************************** Published API *******************************/#ifdef  __cplusplusextern "C" {#endif/* *	Function callback signatures */typedef int 		(*EspCFunction)(EspRequest *ep, int argc, 						struct MprVar **argv);typedef int 		(*EspStringCFunction)(EspRequest *ep, int argc, 						char **argv);/* *	APIs for those hosting the ESP module */extern int 			espOpen(const Esp *control);extern void			espClose(void);extern EspRequest	*espCreateRequest(EspHandle webServerRequestHandle, 						char *uri, MprVar *envObj);extern void			espDestroyRequest(EspRequest *ep);extern int			espProcessRequest(EspRequest *ep, const char *docPath, 						char *docBuf, char **errMsg);/* *	Method invocation */extern void			espDefineCFunction(EspRequest *ep, const char *functionName, 						EspCFunction fn, void *thisPtr);extern void 		espDefineFunction(EspRequest *ep, const char *functionName, 						char *args, char *body);extern void			espDefineStringCFunction(EspRequest *ep, 						const char *functionName, EspStringCFunction fn, 						void *thisPtr);extern int 			espRunFunction(EspRequest *ep, MprVar *obj, 						char *functionName, MprArray *args);extern void			espSetResponseCode(EspRequest *ep, int code);extern void			espSetReturn(EspRequest *ep, MprVar value);extern void 		*espGetThisPtr(EspRequest *ep);/* *	Utility routines to use in C methods */extern void			espError(EspRequest *ep, const char *fmt, ...) PRINTF_ATTRIBUTE(2,3);extern int			espEvalFile(EspRequest *ep, char *path, MprVar *result, 						char **emsg);extern int			espEvalScript(EspRequest *ep, char *script, MprVar *result, 						char **emsg);extern MprVar		*espGetLocalObject(EspRequest *ep);extern MprVar		*espGetGlobalObject(EspRequest *ep);extern EspHandle 	espGetRequestHandle(EspRequest *ep);extern MprVar		*espGetResult(EspRequest *ep);extern EjsId 		espGetScriptHandle(EspRequest *ep);extern void			espRedirect(EspRequest *ep, int code, char *url);extern void			espSetHeader(EspRequest *ep, char *header, 						bool allowMultiple);extern void			espSetReturnString(EspRequest *ep, const char *str);extern int			espWrite(EspRequest *ep, char *buf, int size);extern int			espWriteString(EspRequest *ep, char *buf);extern int			espWriteFmt(EspRequest *ep, char *fmt, ...) PRINTF_ATTRIBUTE(2,3);/* *	ESP array[] variable access (set will update/create) */extern int			espGetVar(EspRequest *ep, EspEnvType oType, char *var,						MprVar *value);extern char			*espGetStringVar(EspRequest *ep, EspEnvType oType, 						char *var, char *defaultValue);extern void			espSetVar(EspRequest *ep, EspEnvType oType, char *var, 						MprVar value);extern void			espSetStringVar(EspRequest *ep, EspEnvType oType, 						const char *var, const char *value);extern int			espUnsetVar(EspRequest *ep, EspEnvType oType, char *var);/* *	Object creation and management */extern MprVar		espCreateObjVar(char *name, int hashSize);extern MprVar		espCreateArrayVar(char *name, int size);extern bool			espDestroyVar(MprVar *var);extern MprVar		*espCreateProperty(MprVar *obj, char *property, 						MprVar *newValue);extern MprVar		*espCreatePropertyValue(MprVar *obj, char *property, 						MprVar newValue);extern int			espDeleteProperty(MprVar *obj, char *property);/* *	JavaScript variable management. Set will create/update a property. *	All return a property reference. GetProperty will optionally return the *	property in value. */extern MprVar		*espGetProperty(MprVar *obj, char *property, 						MprVar *value);extern MprVar		*espSetProperty(MprVar *obj, char *property, 						MprVar *newValue);extern MprVar		*espSetPropertyValue(MprVar *obj, char *property, 						MprVar newValue);#if 0/* *	Low-level direct read and write of properties.  *	FUTURE:  -- Read is not (dest, src). MUST WARN IN DOC ABOUT COPY/READ *	Will still cause triggers to run. */extern int	 		espReadProperty(MprVar *dest, MprVar *prop);extern int			espWriteProperty(MprVar *prop, MprVar *newValue);extern int			espWritePropertyValue(MprVar *prop, MprVar newValue);#endif/*  *	Access JavaScript variables by their full name. Can use "." or "[]". For *	example: "global.request['REQUEST_URI']" *	For Read/write, the variables must exist. */extern int 			espCopyVar(EspRequest *ep, char *var, MprVar *value, 						int copyDepth);extern int			espDeleteVar(EspRequest *ep, char *var);extern int 			espReadVar(EspRequest *ep, char *var, MprVar *value);extern int	 		espWriteVar(EspRequest *ep, char *var, MprVar *value);extern int	 		espWriteVarValue(EspRequest *ep, char *var, MprVar value);/* *	Object property enumeration */extern MprVar		*espGetFirstProperty(MprVar *obj, int includeFlags);extern MprVar		*espGetNextProperty(MprVar *obj, MprVar *currentProperty,						int includeFlags);extern int			espGetPropertyCount(MprVar *obj, int includeFlags);#ifdef  __cplusplus}#endif/******************************************************************************/#endif /* _h_ESP_h *//* * Local variables: * tab-width: 4 * c-basic-offset: 4 * End: * vim:tw=78 * vim600: sw=4 ts=4 fdm=marker * vim<600: sw=4 ts=4 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美—级在线免费片| 亚洲一线二线三线久久久| 欧美日韩一级片网站| 北条麻妃国产九九精品视频| 久久aⅴ国产欧美74aaa| 天堂资源在线中文精品| 日韩精品一区二区三区蜜臀| 欧美日韩国产成人在线91| 欧美日韩一卡二卡| 日韩精品一区二区三区蜜臀 | 欧美美女一区二区在线观看| 午夜精品久久久久影视| 久久综合999| 欧美三级欧美一级| 青青草视频一区| 日韩欧美专区在线| 欧美另类videos死尸| 欧美成va人片在线观看| 久久久国产精品午夜一区ai换脸 | 欧美色区777第一页| 免费观看久久久4p| 国产成人av电影在线播放| 午夜视频久久久久久| 欧美一级二级在线观看| 日韩一区二区精品在线观看| 久久综合色8888| 亚洲欧洲性图库| 日韩成人av影视| 成人做爰69片免费看网站| 9色porny自拍视频一区二区| 99视频有精品| 日韩三级视频在线看| 欧美videofree性高清杂交| 久久久久久影视| 亚洲丝袜美腿综合| 日韩av网站在线观看| 久久 天天综合| 国产电影精品久久禁18| 欧美日韩久久不卡| 亚洲欧美国产三级| 国内精品视频666| 欧美猛男gaygay网站| 国产精品护士白丝一区av| 琪琪一区二区三区| 欧美日韩成人激情| 日韩美女久久久| 北条麻妃一区二区三区| 久久天天做天天爱综合色| 无吗不卡中文字幕| 97se亚洲国产综合自在线不卡| 日韩欧美精品三级| 久草在线在线精品观看| 日韩一级片在线观看| 日av在线不卡| 精品国产一区二区精华| 裸体歌舞表演一区二区| 欧美羞羞免费网站| 亚洲不卡在线观看| 欧美二区三区91| 麻豆中文一区二区| 2020日本不卡一区二区视频| 婷婷开心激情综合| 欧美电影免费观看高清完整版在线 | 午夜欧美电影在线观看| 精品视频1区2区| 国产99精品视频| **欧美大码日韩| 色视频一区二区| 伊人色综合久久天天| 欧美人牲a欧美精品| 韩国三级中文字幕hd久久精品| 亚洲天堂免费看| 国产亚洲福利社区一区| 4438x成人网最大色成网站| 成人av资源站| 高清成人免费视频| 国产一区久久久| 久久福利视频一区二区| 亚洲高清三级视频| 中文字幕在线一区二区三区| 精品乱人伦一区二区三区| 欧美自拍丝袜亚洲| 色天使久久综合网天天| 99精品久久99久久久久| 国产suv一区二区三区88区| 精品一区二区在线看| 五月激情六月综合| 三级久久三级久久| 五月天丁香久久| 黄网站免费久久| 国产宾馆实践打屁股91| 国产69精品久久久久毛片| 国产一区999| 国产91精品免费| 色欧美片视频在线观看 | 欧日韩精品视频| 91网站视频在线观看| 国产一区二区按摩在线观看| 国产99久久久国产精品| 一本一道久久a久久精品| 欧美综合天天夜夜久久| 欧美一区二区三区视频在线 | 另类小说一区二区三区| 久久精品国产在热久久| 欧美国产视频在线| 久久日一线二线三线suv| 欧美一级黄色大片| 亚洲免费观看高清完整版在线观看熊 | 中文字幕一区二区三区在线观看| 亚洲综合精品久久| 麻豆国产欧美一区二区三区| 99re这里都是精品| 精品第一国产综合精品aⅴ| 成人欧美一区二区三区视频网页| 偷拍一区二区三区| 91在线免费播放| 亚洲国产精品成人综合| 日韩电影免费在线看| 色综合视频一区二区三区高清| 久久九九久久九九| 免费在线观看日韩欧美| 欧美日韩国产乱码电影| 亚洲综合免费观看高清在线观看| 风间由美性色一区二区三区| 日韩区在线观看| 男女男精品网站| 欧美一级片在线观看| 日本亚洲最大的色成网站www| 91国在线观看| 日欧美一区二区| 8x福利精品第一导航| 天堂久久一区二区三区| 91精品国产一区二区三区| 香蕉影视欧美成人| 日韩欧美在线观看一区二区三区| 亚洲v日本v欧美v久久精品| 欧美日韩亚洲综合在线| 亚洲自拍另类综合| 欧美一区二区三区视频在线| 麻豆中文一区二区| 久久精品亚洲乱码伦伦中文| 成人午夜免费视频| 亚洲综合在线电影| 精品国产免费人成电影在线观看四季| 日韩综合小视频| 欧美精品一区二区三区四区 | 国产精品三级av在线播放| 国产在线精品一区二区不卡了| 久久新电视剧免费观看| 91在线视频免费观看| 日本系列欧美系列| 亚洲综合在线五月| 久久久久综合网| 欧美日韩免费视频| 懂色中文一区二区在线播放| 亚洲成人综合视频| 中文幕一区二区三区久久蜜桃| 欧美无砖砖区免费| 国产精品一区在线观看乱码| 亚洲精品高清在线观看| 国产欧美日韩在线视频| 欧美性一区二区| 色综合天天综合网天天狠天天| 精品在线播放免费| 天堂av在线一区| 亚洲一区二区视频在线观看| 国产视频一区在线观看 | 精品夜夜嗨av一区二区三区| 亚洲一线二线三线视频| 一区二区在线观看免费| 最新不卡av在线| 国产亚洲精品aa午夜观看| 精品国产乱码久久久久久久| 欧美另类一区二区三区| 欧美日韩免费高清一区色橹橹| 97成人超碰视| 欧美在线视频你懂得| 一本到不卡免费一区二区| 99精品国产91久久久久久| 懂色av一区二区夜夜嗨| 成人免费看黄yyy456| 成人高清av在线| 一本大道久久a久久精品综合| 99久久er热在这里只有精品15 | 亚洲黄色在线视频| 亚洲一区二区三区激情| 日韩精品成人一区二区三区| 久久成人羞羞网站| 国产91丝袜在线播放九色| www.日韩精品| 欧美一卡2卡3卡4卡| 中文字幕不卡在线播放| 亚洲国产成人porn| 久久99精品久久久久久久久久久久| 国产一区二区中文字幕| 日本高清视频一区二区| 日韩亚洲欧美成人一区| 国产精品国产自产拍在线| 一级日本不卡的影视| 亚洲精品免费播放|