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

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

?? htnet.h

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*  					W3C Sample Code Library libwww HTNet Class!  The Net Class!*//***	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.*//*The Net class manages information related to a "thread" in libwww. As libwwwthreads are not really threads but a notion of using interleaved, non-blockingI/O for accessing data objects from the network (or local file system), theycan be used on any platform with or without support for native threads. Inthe case where you have an application using real threads the Net class issimply a object maintaining links to all other objects involved in servingthe request. If you are using the libwww pseudo threads then the Net objectcontains enough information to stop and start a request based on which BSDsockets are ready. In practise this is of course transparent to the application- this is just to explain the difference.When a Request object is passed to the Library ,the core creates a new HTNet object per channelused by the request. In many cases a request only uses a singlechannel object but, for example, FTP requests useat least two - one for the control connection and one for the data connection.You can find more information about the libwww pseudo thread model in the Multithread Specifications.This module is implemented by HTNet.c, and it is apart of the W3C Sample Code Library.*/#ifndef HTNET_H#define HTNET_H/*The HTNet object is the core of the request queue management.This object contains information about the socket descriptor, the input readbuffer etc. required to identify and service a request.*/typedef struct _HTNet HTNet;#include "HTEvent.h"#include "HTReq.h"#include "HTResponse.h"#include "HTTrans.h"#include "HTHost.h"#include "HTProt.h"#include "HTChannl.h"#include "HTDNS.h"/*.  Generic BEFORE and AFTER Filter Management.Filter functions can be registered to be called before andafter a request has either been started or has terminated. Theconditions for BEFORE and AFTER filters are not the same, and sowe maintain them independently. Filters can be registered globally or locally.The global filters are registered directly by the Net Object (this module)and the local filters are registered by theHTRequest Object. However, both &nbsp;local andglobal filters use the same regisration mechanism which we provide here.(  Filter Ordering)Filters can be registered by anyone and as they are an often used mechanismfor introducing extensions in libwww, they are videly used to handleauthentication, redirection, etc. Many filters can be registered at onceand not all of the filters may know about the other filters. Therefore, itis difficult to specify an absolute ordering by which the filters shouldbe called. Instead you can decide a relative order by which the filters shouldbe called. The order works pretty much like the Unix priority mechanism runningfrom HT_FILTER_FIRST to HT_FILTER_LAST havingHT_FILTER_MIDDLE being the "normal" case.*/typedef enum _HTFilterOrder {    HT_FILTER_FIRST	= 0x0,		/*     0 */    HT_FILTER_EARLY	= 0x3FFF,	/* 16383 */    HT_FILTER_MIDDLE	= 0x7FFF,	/* 32767 */    HT_FILTER_LATE	= 0xBFFE,	/* 49150 */    HT_FILTER_LAST	= 0xFFFF	/* 65535 */} HTFilterOrder;/*In case multiple filters are registered with the same order then they arecalled in the inverse order they were registered.&nbsp;(  Filter URL Templates)Both BEFORE and AFTER filters can be registered with a URLtemplate in which case they are only called when the Request URLmatches the template. A template is simply a string which is matched againstthe Request URL. The string can be terminated by a&nbsp;single"*" in which case all strings matching the template up til the"*" is considered a match. A template can be as short as the access schemewhich enmables a filter for a specific access method only, for example"http//<star>".(  BEFORE Filters)A BEFORE filter is called whenever we issue a request and they havebeen selected by the execution procedure. BEFORE filters are registeredwith a context and a filter order by which they are to be calledand a URL template which may be NULL. In this case, the filter iscalled on every request. The mode can be used by anybody to pass an extraparameter to a filter. This is not really OO thinking - but hey - this isC ;-)*/typedef int HTNetBefore (HTRequest * request, void * param, int mode);/*You can add a BEFORE filter in the list provided by the caller. Severalfilters can be registered in which case they are called with the filter orderingin mind.*/extern BOOL HTNetCall_addBefore (HTList * list, HTNetBefore * before,				 const char * tmplate, void * param,                                 HTFilterOrder order);/*You can also unregister all instances of a BEFORE filter from a list usingthe following function*/extern BOOL HTNetCall_deleteBefore (HTList * list, HTNetBefore * before);/*You get rid of all BEFORE filters using this function*/extern BOOL HTNetCall_deleteBeforeAll (HTList * list);/*The BEFORE filters are expected and called if appropriate every time we issuea new request. Libwww calls the BEFORE filters in the order specified atregistration time. If a filter returns other than HT_OK then stop and returnimmediately. Otherwise return what the last filter returns.*/extern int HTNetCall_executeBefore (HTList * list, HTRequest * request);/*(  AFTER Filters)An AFTER filter is called whenever we have terminated a request. Thatis, on the way out from the protocol module andback to the application. AFTER filters are registered with acontext, a status, a filter order by which they areto be called and a URL template which may be NULL. The status of therequest may determine which filter to call. The set of possible values aregiven below. An AFTER filter can be registered to handle one or moreof the codes.      HT_ERROR      An error occured      HT_LOADED      The document was loaded      HT_NO_DATA      OK, but no data      HT_NO_ACCESS      The request could not be succeeded due to lack of credentials      HT_NO_PROXY_ACCESS      The request could not be succeeded due to lack of credentials for accessing    an intermediate proxy      HT_RETRY      Retry request after at a later time      HT_PERM_REDIRECT      The request has been permanently redirected and we send back the new URL      HT_TEMP_REDIRECT      The request has been temporarily redirected and we send back the new URL      HT_ALL      All of aboveA Protocol module can also, in certain cases, return a HT_IGNOREin which case no filters are called*/typedef int HTNetAfter (HTRequest * request, HTResponse * response,                        void * param, int status);/*You can register a AFTER filter in the list provided by the caller. Severalfilters can be registered in which case they are called with the filter orderingin mind.*/extern BOOL HTNetCall_addAfter (HTList * list, HTNetAfter * after,				const char * tmplate, void * param,				int status, HTFilterOrder order);/*You can either unregister all filters registered for a given status usingthis function or the filter for all status codes.*/extern BOOL HTNetCall_deleteAfter (HTList * list, HTNetAfter * after);extern BOOL HTNetCall_deleteAfterStatus (HTList * list, int status);/*You can also delete all AFTER filters in list*/extern BOOL HTNetCall_deleteAfterAll (HTList * list);/*This function calls all the AFTER filters in the order specified at registrationtime and if it has the right status code and it's not HT_IGNORE.We also check for any template and whether it matches or not. If a filterreturns other than HT_OK then stop and return immediately. Otherwise returnwhat the last filter returns.*/extern int HTNetCall_executeAfter (HTList * list, HTRequest * request,				   int status);/*.  Global BEFORE and AFTER Filter Management.Global filters are inspected on every request (they do not have to be called- only if the conditions match). You can also register filters locally inthe Request object.  Global BEFORE FiltersThese are the methods to handle global BEFORE Filters.*/extern BOOL HTNet_setBefore (HTList * list);extern HTList * HTNet_before (void);extern BOOL HTNet_addBefore (HTNetBefore * before, const char * tmplate,			     void * param, HTFilterOrder order);extern BOOL HTNet_deleteBefore (HTNetBefore * before);/*You can call both the local and the global BEFORE filters (if any)*/extern int HTNet_executeBeforeAll (HTRequest * request);/*  Global AFTER FiltersThese are the methods to handle global AFTER Filters.*/extern BOOL HTNet_setAfter (HTList * list);extern HTList * HTNet_after (void);extern BOOL HTNet_addAfter (HTNetAfter * after, const char * tmplate,			    void * param, int status,                            HTFilterOrder order);extern BOOL HTNet_deleteAfter (HTNetAfter * after);extern BOOL HTNet_deleteAfterStatus (int status);/*You can call both the local and the global AFTER filters (if any)*/extern int HTNet_executeAfterAll (HTRequest * request, int status);/*.  Socket Resource Management.The request queue ensures that no more than a fixed number of TCP connectionsare open at the same time. If more requests are handed to the Library, theyare put into the pending queue and initiated when sockets become free.(  Number of Simultanous open TCP connections)Set the max number of simultanous sockets. The default value is HT_MAX_SOCKETSwhich is 6. The number of persistent connections depend on this value asa deadlock can occur if all available sockets a persistent (see theDNS Manager for more information on setting thenumber of persistent connections). The number of persistent connections cannever be more than the max number of sockets-2, so letting newmax=2 preventspersistent sockets.*/extern BOOL HTNet_setMaxSocket (int newmax);extern int  HTNet_maxSocket (void);/*(  Socket Counters)*/extern void HTNet_increaseSocket (void);extern void HTNet_decreaseSocket (void);extern int HTNet_availableSockets (void);/*(  Persistent Socket Counters)*/extern void HTNet_increasePersistentSocket (void);extern void HTNet_decreasePersistentSocket (void);extern int HTNet_availablePersistentSockets (void);/*(  Any Ongoing Connections?)Returns whether there are active requests. Idle persistent sockets do notcount as active.*/extern BOOL HTNet_isIdle (void);/*(  List Active Queue)Returns the list of active requests that are currently having an open connection.Returns list of HTNet objects or NULL if error.*/extern HTList *HTNet_activeQueue (void);extern BOOL HTNet_idle (void);/*(  Are we Active?

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91国偷自产一区二区三区观看| 97国产一区二区| 曰韩精品一区二区| 久久久久久久精| 7777精品伊人久久久大香线蕉| 91视频免费看| 国产suv精品一区二区883| 日韩不卡手机在线v区| 亚洲精品成人精品456| 91麻豆精品国产无毒不卡在线观看| 一本大道久久a久久综合婷婷 | 五月婷婷激情综合网| 亚洲天堂2016| 中文字幕不卡一区| 久久久亚洲精品石原莉奈| 欧美一区二区三区系列电影| 欧美日产在线观看| 欧美日韩国产精品成人| 一本到三区不卡视频| 欧美性感一类影片在线播放| 日本韩国欧美一区| 色婷婷国产精品| 欧美日韩一区小说| 欧美日韩国产片| 日韩亚洲电影在线| 欧美www视频| 精品国产伦一区二区三区观看体验 | 日韩在线一区二区| 五月婷婷综合激情| 国产一区二区三区免费看| 久久er精品视频| 激情欧美一区二区三区在线观看| 国产美女久久久久| 成人激情黄色小说| 99精品视频在线免费观看| 欧美系列亚洲系列| 91精品久久久久久久91蜜桃| 欧美成人福利视频| 国产亚洲精品7777| 日韩一区日韩二区| 五月天激情综合网| 精品在线播放免费| 成人小视频在线| 91视频一区二区| 欧美乱妇15p| 国产午夜精品久久| 成人一道本在线| 亚洲一二三区在线观看| 图片区日韩欧美亚洲| 蜜臀av一区二区在线观看| 秋霞国产午夜精品免费视频| 高清成人免费视频| 欧洲精品中文字幕| 欧美熟乱第一页| 久久婷婷国产综合国色天香| 国产网站一区二区| 久久久国产精品午夜一区ai换脸| 日韩美女视频一区| 日日夜夜免费精品| 不卡视频一二三| 9191国产精品| 国产精品乱码妇女bbbb| 午夜精品影院在线观看| 国产在线播放一区| 色婷婷久久一区二区三区麻豆| 日韩欧美精品在线视频| 中文字幕在线播放不卡一区| 国产视频一区在线观看| 亚洲午夜久久久久久久久久久| 毛片一区二区三区| 99久久久国产精品免费蜜臀| 欧美性xxxxxxxx| 久久精品一二三| 一区二区三区色| 麻豆国产精品视频| 成人激情小说网站| 日韩欧美一级二级三级| 综合中文字幕亚洲| 国内精品视频一区二区三区八戒| 色综合av在线| 久久久精品黄色| 亚洲va国产天堂va久久en| 国产精品99久久久久久有的能看| 欧美日韩一区二区三区高清| 精品女同一区二区| 亚洲图片一区二区| 成人午夜av电影| 日韩欧美国产成人一区二区| 一区二区免费在线播放| 国产一区二区三区精品欧美日韩一区二区三区 | 樱花影视一区二区| 国产aⅴ综合色| 欧美日韩视频一区二区| 久久综合视频网| 亚洲高清免费观看| 99久久精品免费精品国产| 欧美成人性战久久| 午夜电影一区二区| 色妞www精品视频| 久久久美女毛片| 日本不卡一区二区三区高清视频| 色婷婷精品大视频在线蜜桃视频 | 久久一区二区视频| 午夜精品在线看| 欧美性猛交xxxx黑人交| 亚洲欧洲成人自拍| 国产91丝袜在线播放0| 日韩欧美一级二级| 奇米888四色在线精品| 在线视频国内一区二区| 中文字幕亚洲成人| 九色综合狠狠综合久久| 日本精品一区二区三区高清| 亚洲国产精品成人综合色在线婷婷| 激情丁香综合五月| 欧美va在线播放| 麻豆精品蜜桃视频网站| 欧美日韩综合在线免费观看| 中文字幕精品一区二区精品绿巨人| 韩国av一区二区三区| 7777精品伊人久久久大香线蕉经典版下载| 一区二区三区不卡在线观看| 成a人片亚洲日本久久| 欧美极品aⅴ影院| 国产成人精品综合在线观看| 精品久久久久一区二区国产| 日韩影院免费视频| 欧美一级欧美一级在线播放| 亚洲欧美另类久久久精品2019| 黄色日韩三级电影| 久久久美女毛片| 粉嫩13p一区二区三区| 国产欧美一区二区精品性| 国产精品亚洲视频| 中文字幕免费一区| 91在线云播放| 亚洲最大成人综合| 91女厕偷拍女厕偷拍高清| 久久精品一区二区三区不卡牛牛| 国产精品99久久久久久似苏梦涵| 国产日产精品1区| 99国产精品久久久| 一区二区三区免费在线观看| 欧美中文字幕一区二区三区亚洲| 一区二区免费看| 欧美一区二区免费视频| 亚洲www啪成人一区二区麻豆| 在线观看日韩一区| 日韩电影在线看| 欧美精品一区二区高清在线观看| 国产传媒欧美日韩成人| 中文字幕精品一区| 在线观看免费成人| 日本视频免费一区| 久久久美女毛片| 成人污污视频在线观看| 亚洲丝袜另类动漫二区| 在线观看免费一区| 久久99久久久久久久久久久| 精品国产欧美一区二区| 99视频超级精品| 理论片日本一区| 亚洲黄色性网站| 久久久久国产精品厨房| 91久久免费观看| 国产高清不卡一区| 舔着乳尖日韩一区| 国产精品美女久久久久av爽李琼 | 久久蜜桃av一区精品变态类天堂 | 欧美三电影在线| 国产成人精品免费| 日韩精品一级中文字幕精品视频免费观看| 久久久亚洲精品石原莉奈 | 国产欧美一区二区三区在线老狼| 欧美日韩综合不卡| 成人h动漫精品一区二区| 美女一区二区三区在线观看| 亚洲视频免费观看| 国产午夜精品福利| 欧美成人一级视频| 欧美精品乱码久久久久久按摩 | 国产三级精品三级在线专区| 9191久久久久久久久久久| 色综合一区二区三区| 国产一区不卡在线| 老司机精品视频在线| 亚洲一区在线播放| 亚洲女人小视频在线观看| 亚洲国产精品国自产拍av| 日韩美女一区二区三区| 欧美色精品在线视频| 91丝袜国产在线播放| 国产成人在线观看免费网站| 另类调教123区| 日本大胆欧美人术艺术动态| 亚洲成人黄色影院| 亚洲综合久久久| 亚洲精品免费在线观看| 国产精品久久久久久久久久免费看 | 92精品国产成人观看免费|