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

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

?? htcache.h

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? H
字號:
/*  					W3C Sample Code Library libwww Persistent Cache Manager!  Persistent Cache Manager!*//***	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.*//*The cache contains details of persistent files which contain the contentsof remote documents. The existing cache manager is somewhat naive - especiallyin its garbage collection but it is just an example of how it can bedone.However, it is a fully HTTP/1.1 compliant cache manager. More advancedimplementations are welcome!This module is implemented by HTCache.c, and it isa part of the W3C Sample Code Library.*/#ifndef HTCACHE_H#define HTCACHE_H#include "WWWLib.h"/*.  Initialize and Terminate the Persistent Cache.The cache_root is the URI of the location of the persistentcache. An example is "file:/tmp/w3c-lib". Ifcache_root is NULL then determine a cache rootusing the following algorithm:  o 	     Look for any environment variables (if supported) in the following order:	     WWW_CACHE, TMP, and TEMP. If none    are set then then fall back on "/tmp".  o 	     Append the folder name "w3c-cache" to the root identified aboveThe cache_root location does not have to exist, it will be createdautomatically if not. An empty string will make '/' the cache root.The size is the total size in MBytes - the default size is 20M. The cachecan not be less than 5M.We can only enable the cache if we are in securemode where we can not access the local file system. This is for examplethe case if using an application as a telnet shell.*/extern BOOL HTCacheInit (const char * cache_root, int size);/*After the cache has been terminated it can not be used anymore unless youdo another HTCacheInit() call.*/extern BOOL HTCacheTerminate (void);/*.  Cache Mode Parameters.The persistent cache has a set of overall parameters that you can adjust(  Enable and Disable the Cache)The cache can be temporarily suspended by using the enable/disable flag.This does not prevent the cache from being enabled/disable at a later pointin time.*/extern void HTCacheMode_setEnabled (BOOL mode);extern BOOL HTCacheMode_enabled (void);/*The cache can be setup to whether cache password protected documents thru theprotected flag. By default this flag is turned off.*/extern void HTCacheMode_setProtected (BOOL mode);extern BOOL HTCacheMode_protected (void);/*(  What is the current Cache Root?)Return the value of the cache root. The cache root can only be set throughthe HTCacheInit() function. The string returned MUST be freedby the caller*/extern char * HTCacheMode_getRoot (void);/*(  Total Cache Size)We set the default cache size to 20M. We set the minimum size to 5M in ordernot to get into weird problems while writing the cache. The size is indicatedin Mega bytes. The size is given in MBytes and is also returned in MBytes.We don't consider the metainformation as part of the total cache size whichis the the reason for why the min cache size should not be less than 5M.*/extern BOOL HTCacheMode_setMaxSize (int size);extern int  HTCacheMode_maxSize    (void);/*(  Max Size of a Single Cache Entry)It is also possible to control the max size of a single cache entry so thatthe cache doesn't get filled with a very few, very large cached entries.The default max size for a single cached entry is 3M. The value indicatedmust be in Mbytes, for example, a vaue of 3 would mean 3 MBytes.*/extern BOOL HTCacheMode_setMaxCacheEntrySize (int size);extern int HTCacheMode_maxCacheEntrySize (void);/*( Default expiration time of cache entries)If a response does not arrive with an expiration time and does notexplicitly forbid its being cached, use the default expiration time. Thetime is given in seconds (e.g., 3,600 is one hour).*/extern void HTCacheMode_setDefaultExpiration (const int exp_time);extern int HTCacheMode_DefaultExpiration (void);/*(  How do we handle Expiration of Cached Objects?)There are various ways of handling Expires header when met ina history list. Either it can be ignored all together, the user canbe notified with a warning, or the document can be reloaded automatically.This flag decides what action to be taken. The default action isHT_EXPIRES_IGNORE. In HT_EXPIRES_NOTIFY mode ,we push a message on to the Error stack which is presented to the user.*/typedef enum _HTExpiresMode {    HT_EXPIRES_IGNORE = 0,    HT_EXPIRES_NOTIFY,    HT_EXPIRES_AUTO} HTExpiresMode;extern void HTCacheMode_setExpires (HTExpiresMode mode);extern HTExpiresMode HTCacheMode_expires (void);/*(  Disconnected Operation)The cache can be set to handle disconnected operation where it does not usethe network to validate entries and do not attempt to load new documents.All requests that can not be fulfilled by the cache will be returned witha "504 Gateway Timeout" response. There are two modes of howthe cache can operate in disconnected mode:      No network activity at all      Here is uses its own persistent cache      Forward all disconnected requests to a proxy cache      Here it uses the HTTP/1.1 cache-control to indicate that the proxy should    operate in disconnected mode. This mode only really makes sense when you    are using a proxy, of course.*/typedef enum _HTDisconnectedMode {    HT_DISCONNECT_NONE     = 0,    HT_DISCONNECT_NORMAL   = 1,    HT_DISCONNECT_EXTERNAL = 2} HTDisconnectedMode;extern void HTCacheMode_setDisconnected (HTDisconnectedMode mode);extern HTDisconnectedMode HTCacheMode_disconnected (void);extern BOOL HTCacheMode_isDisconnected (HTReload mode);/*.  The Cache Index.The persistent cache keeps an index of its current entries so that garbagecollection and lookup becomes more efficient. This index is stored automaticallyat regular intervals so that we don't get out of sync. Also, it is automaticallyloaded at startup and saved at closedown of the cache.(  Reading the Cache Index)Read the saved set of cached entries from disk. we only allow the index robe read when there is no entries in memory. That way we can ensure consistancy.*/extern BOOL HTCacheIndex_read (const char * cache_root);/*(  Write the Cache Index)Walk through the list of cached objects and save them to disk. We overrideany existing version but that is normally OK as we have already read itscontents.*/extern BOOL HTCacheIndex_write (const char * cache_root);/*.  The HTCache Object.The cache object is what we store about a cached objet in memory.*/typedef struct _HTCache HTCache;/*(  Create and Update a Cache Object)Filling the cache is done as all other transportation of bulk data in libwwwusing streams. The cache object creater is astream which in many cases sits on a T stream sothat we get the original feed and at the same time can parse the contents.In some situations, we want to append data to an already exiting cache entry.This is the case when a use has interrupted a download and we are stuck witha subpart of the document. If the user later on whishes to download the objectagain we can issue a range request and continue from where we were. Thiswill in many situations save a lot of bandwidth.*/extern HTConverter HTCacheWriter, HTCacheAppend;/*This function writes the metainformation along with the data object storedby the HTCacheWriter stream above. If no headers are available then the metafile is empty*/extern BOOL HTCache_writeMeta (HTCache * cache, HTRequest * request,                               HTResponse * response);/*In case we received a "304 Not Modified" response then we donot have to tough the body but must merge the metainformation with the previousversion. Therefore we need a special metainformation update function.*/extern BOOL HTCache_updateMeta (HTCache * cache, HTRequest * request,                                HTResponse * response);/*Clear a cache entry*/extern BOOL HTCache_resetMeta (HTCache * cache, HTRequest * request,                                HTResponse * response);/*(  Check Cached Entry)After we get a response back, we should check whether we can still cachean entry and/or we should add an entry for a resource that has just beencreated so that we can remember the etag and other things. The latter allowsus to guarantee that we don't loose data due to the lost update problem.*/extern HTCache * HTCache_touch (HTRequest * request, HTResponse * response,                                HTParentAnchor * anchor);/*(  Load a Cached Object)Loading a cached object is also done as all other loads in libwww by usinga protocol load module. For the moment, this loadfunction handles the persistent cache as if it was on local file but in fact it could be anywhere.*/extern HTProtCallback HTLoadCache;/*(  Delete a Cache Object)Remove a HTCache object from memory and from disk. You must explicitly removea lock before this operation can succeed*/extern BOOL HTCache_remove (HTCache * cache);/*(  Delete All Cache Objects in Memory)Destroys all cache entried in memory but does not write anything to disk.Use the index methods above for doing that. We do not delete the disk contents.*/extern BOOL HTCache_deleteAll (void);/*(  Delete all Cache Object and File Entries)Destroys all cache entried in memory and on disk. This call basicallyresets the cache to the inital state but it does not terminate the cache.That is, you don't have to reinitialize the cache before you can use it again.*/extern BOOL HTCache_flushAll (void);/*(  Find a Cached Object)Verifies if a cache object exists for this URL and if so returns a URL forthe cached object. It does not verify whether the object is valid or not,for example it might have expired. Use the cache validation methods for checkingthis.*/extern HTCache * HTCache_find (HTParentAnchor * anchor, char * default_name);/*(  Verify if an Object is Fresh)This function checks whether a document has expired or not. The check isbased on the metainformation passed in the anchor object The function returnsthe level of validation needed for getting a fresh version. We also checkthe cache control directives in the request to see if they change the freshnessdiscission.*/extern HTReload HTCache_isFresh (HTCache * me, HTRequest * request);/*(  Register a Cache Hit)As a cache hit may occur several places, we have a public function wherewe can declare a download to be a true cache hit. The number of hits a cacheobject has affects its status when we are doing garbage collection.*/extern BOOL HTCache_addHit (HTCache * cache);/*(  Find the Location of a Cached Object)Is we have a valid entry in the cache then we also need a location wherewe can get it. Hopefully, we may be able to access it thourgh one of ourprotocol modules, for example the local file module.The name returned is in URL syntax and must be freed by the caller*/extern char * HTCache_name (HTCache * cache);/*(  Locking a Cache Object)While we are creating a new cache object or while we are validating an existingone, we must have a lock on the entry so that not other requests can getto it in the mean while. A lock can be broken if the same request tries tocreate the cache entry again. This means that we have tried to validate thecache entry but we got a new shipment of bytes back from the origin serveror an intermediary proxy.*/extern BOOL HTCache_getLock     (HTCache * cache, HTRequest * request);extern BOOL HTCache_breakLock   (HTCache * cache, HTRequest * request);extern BOOL HTCache_hasLock     (HTCache * cache);extern BOOL HTCache_releaseLock (HTCache * cache);/**/#endif/*    @(#) $Id: HTCache.html,v 2.25 2001/08/30 13:41:03 kahan Exp $*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久午夜片| 91麻豆精品国产91久久久资源速度| 丝袜美腿亚洲一区| 亚洲天堂精品视频| 欧美国产精品劲爆| 欧美国产丝袜视频| 中文在线免费一区三区高中清不卡| 精品国产91久久久久久久妲己| 欧美高清dvd| 91精品一区二区三区在线观看| 精品视频免费在线| 欧美日韩精品一区二区三区蜜桃| 欧美影视一区在线| 精品视频一区二区不卡| 在线成人午夜影院| 欧美一区日本一区韩国一区| 欧美一级免费观看| 精品第一国产综合精品aⅴ| 日韩欧美国产综合在线一区二区三区| 日韩欧美国产高清| 久久久亚洲精品石原莉奈| 欧美激情中文字幕| 一区二区三区在线视频免费| 午夜影院在线观看欧美| 久久国产尿小便嘘嘘尿| 国产精品一级黄| 99vv1com这只有精品| 在线视频观看一区| 欧美va在线播放| 国产色产综合色产在线视频| 一区二区三区精品在线观看| 日本免费新一区视频| 国产精品自在欧美一区| 91日韩在线专区| 日韩一区二区电影| 日韩一区中文字幕| 秋霞影院一区二区| www.欧美日韩| 日韩欧美一级特黄在线播放| 亚洲欧美在线aaa| 日本三级亚洲精品| 9色porny自拍视频一区二区| 91精品福利在线一区二区三区| 中文一区在线播放| 激情综合网最新| 色噜噜狠狠成人中文综合| 欧美电影免费观看高清完整版 | 国产三级精品三级在线专区| 亚洲一区二区三区国产| 懂色一区二区三区免费观看| 3d动漫精品啪啪1区2区免费| 国产欧美日韩中文久久| 蜜桃视频免费观看一区| 色八戒一区二区三区| 久久久久99精品一区| 视频在线观看一区| 色丁香久综合在线久综合在线观看| 26uuu成人网一区二区三区| 亚洲国产精品综合小说图片区| 懂色av一区二区三区蜜臀| 日韩精品最新网址| 日本欧美大码aⅴ在线播放| 日本高清不卡aⅴ免费网站| 国产亚洲精品aa午夜观看| 蜜臀国产一区二区三区在线播放| 色偷偷久久一区二区三区| 中文字幕乱码日本亚洲一区二区| 免费观看日韩电影| 91麻豆精品国产91久久久使用方法 | 91久久久免费一区二区| 亚洲国产成人自拍| 国产一区二区三区四区五区入口 | 亚洲美女淫视频| 菠萝蜜视频在线观看一区| 国产亚洲欧美中文| 国产一区二区三区四区在线观看| 日韩精品在线网站| 精东粉嫩av免费一区二区三区| 欧美一激情一区二区三区| 日韩福利电影在线| 日韩免费视频一区二区| 久久国产人妖系列| 久久精品视频在线看| 国产成人综合自拍| 国产精品免费久久久久| 99综合电影在线视频| 一区二区三区在线视频播放| 日本久久精品电影| 日韩在线一区二区三区| 日韩欧美精品三级| 懂色一区二区三区免费观看| 中文字幕亚洲在| 欧美性色黄大片手机版| 日日摸夜夜添夜夜添国产精品 | 国产精品亚洲午夜一区二区三区 | 极品美女销魂一区二区三区免费| 2023国产精品视频| 国产黑丝在线一区二区三区| 国产精品剧情在线亚洲| 91黄色小视频| 奇米影视一区二区三区| 国产香蕉久久精品综合网| 97se亚洲国产综合自在线不卡| 亚洲一区二区三区美女| 日韩欧美中文一区二区| 高清国产一区二区| 亚洲一级电影视频| 久久久激情视频| 欧美性猛交xxxx黑人交| 另类成人小视频在线| 中文字幕视频一区二区三区久| 欧美色大人视频| 国产精品99久久久| 亚洲国产精品久久一线不卡| 精品国产百合女同互慰| 色八戒一区二区三区| 国内一区二区视频| 亚洲一区二区三区视频在线| 国产亚洲精品中文字幕| 欧美最新大片在线看| 国产成人精品三级| 日韩精品成人一区二区三区| 国产精品素人一区二区| 日韩欧美黄色影院| 欧美性感一类影片在线播放| 国产成人在线视频播放| 丝袜美腿成人在线| 亚洲人快播电影网| 26uuu色噜噜精品一区二区| 欧美r级电影在线观看| a亚洲天堂av| 国产乱人伦精品一区二区在线观看 | 91视视频在线直接观看在线看网页在线看| 亚洲免费av高清| 欧美国产激情二区三区| 欧美一区二区大片| 日本久久一区二区三区| 99视频精品在线| 国产在线不卡视频| 麻豆精品久久精品色综合| 亚洲国产视频一区二区| 亚洲精品伦理在线| 国产精品视频一区二区三区不卡 | 粉嫩一区二区三区在线看| 免费在线成人网| 天涯成人国产亚洲精品一区av| 亚洲日本在线天堂| 最近日韩中文字幕| 日韩码欧中文字| 亚洲欧洲99久久| 亚洲女同一区二区| 亚洲男人的天堂网| 亚洲精品v日韩精品| 中文字幕中文字幕中文字幕亚洲无线| 国产亚洲女人久久久久毛片| 久久精品视频一区| 中文字幕一区视频| 亚洲欧美日韩国产另类专区| 亚洲欧美激情插| 亚洲国产日产av| 蜜桃视频一区二区三区| 久久国产精品一区二区| 狠狠色丁香久久婷婷综| 国产麻豆成人传媒免费观看| 国产精品一区二区三区99| 国产成人av网站| 国产99久久久精品| 91尤物视频在线观看| 色爱区综合激月婷婷| 91精品欧美久久久久久动漫| 日韩欧美中文字幕公布| 国产亚洲精品久| 玉足女爽爽91| 日本欧美韩国一区三区| 风间由美中文字幕在线看视频国产欧美| 成人综合婷婷国产精品久久蜜臀| av在线一区二区三区| 欧美日精品一区视频| 精品国产免费视频| 成人欧美一区二区三区在线播放| 亚洲成人av一区二区三区| 精品一区二区影视| zzijzzij亚洲日本少妇熟睡| 欧美色综合影院| 久久亚洲一级片| 亚洲摸摸操操av| 蜜芽一区二区三区| 北岛玲一区二区三区四区| 欧美剧情片在线观看| 国产日韩三级在线| 首页国产欧美日韩丝袜| 成人毛片老司机大片| 欧美日韩国产电影| 国产精品视频观看| 免费日本视频一区| 91一区二区在线观看| 欧美电影免费观看高清完整版在线观看| 中文字幕在线观看一区| 蜜乳av一区二区| 色网站国产精品|