📄 httimer.h
字号:
/* W3C Sample Code Library libwww Timer Class! The Timer Class!*//*** (c) COPYRIGHT MIT 1995.** Please first read the full copyright statement in the file COPYRIGH.*//*The Timer class handles timers for libwww and the application. This worksexactly as in X where you create a timer object with a callback functionand a timeout. The callback will be called every time the timer expires.There are several timeouts that can be set in libwww: o The time we keep an idle persistent connection open. Here there are in fact two mechanisms depending on whether you use blocking or non-blocking sockets. The default is 60 secs. The timers can be accessed using the functions defined in the HTHost object o The idle time we want to wait when receiving a response from a server, that is, if it doesn't send anything in a number of secs. The default here is no timeout. It can be accessed in the HTHost object as well. o The timeout before we flush pending requests in a pipeline, the default here is 30 ms. It is also accessed in the HTHost object o The timeout before we start sending the body of a PUT or POST request. Normally we send the Expect: 100-continue header field but if the server doesn't send back a 100 Continue code then we upload the body anyway. The default is 2 secs and can be accessed in the HTTP module.*/#ifndef HTTIMER_H#define HTTIMER_H#include "wwwsys.h"#include "HTReq.h"typedef struct _HTTimer HTTimer;typedef int HTTimerCallback (HTTimer *, void *, HTEventType type);/*. Create and Delete Timers.The callback function is the function that is to be called when timer expires.*/extern HTTimer * HTTimer_new (HTTimer *, HTTimerCallback *, void *, ms_t millis, BOOL relative, BOOL repetitive);extern BOOL HTTimer_delete (HTTimer * timer);extern BOOL HTTimer_deleteAll (void);extern BOOL HTTimer_expireAll (void);/*. Dispatch Timer.Just do it*/extern int HTTimer_dispatch (HTTimer * timer);/*( Get the next timer in line)Dispatches all expired timers and optionally returns the time till the nextone.*/extern int HTTimer_next (ms_t * pSoonest);/*( Reset an already existing Repetitive Timer)*/extern BOOL HTTimer_refresh(HTTimer * timer, ms_t now);/*. Get Information about a Timer Object.( Absolute Time when This Timer Expires)Absolute time in millies when this timer will expire*/extern ms_t HTTimer_expiresAbsolute (HTTimer * timer);/*( Relative Time this Timer is running)Gived the relative time in millies that this timer was registered with. Forexample, a relative timer set to expire in 20ms will return 20.*/#define HTTimer_getTime(t) HTTimer_expiresRelative(t)extern ms_t HTTimer_expiresRelative (HTTimer * timer);/*( Has this Timer Expired?)If so then it's time to call the dispatcher!*/extern BOOL HTTimer_hasTimerExpired (HTTimer * timer);/*( What callback is this Timer Registered with?)*/extern HTTimerCallback * HTTimer_callback (HTTimer * timer);/*( Is this Time relative or Absolute?)*/extern BOOL HTTimer_isRelative (HTTimer * timer);/*. Platform Specific Timers.On some platform, timers are supported via events or other OS specificmechanisms. You can make libwww can support these by registering a platformspecific timer add and timer delete method.*/typedef BOOL HTTimerSetCallback (HTTimer * timer);extern BOOL HTTimer_registerSetTimerCallback (HTTimerSetCallback * cbf);extern BOOL HTTimer_registerDeleteTimerCallback (HTTimerSetCallback * cbf);/**/#endif /* HTTIMER_H *//* @(#) $Id: HTTimer.html,v 2.11 1999/06/30 21:05:13 frystyk Exp $*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -