ootimer.h
来自「一个非常美妙的proxy。功能强大。基于sip的协议。如果还要的话」· C头文件 代码 · 共 129 行
H
129 行
/* * Copyright (C) 2004-2005 by Objective Systems, Inc. * * This software is furnished under an open source license and may be * used and copied only in accordance with the terms of this license. * The text of the license may generally be found in the root * directory of this installation in the LICENSE.txt file. It * can also be viewed online at the following URL: * * http://www.obj-sys.com/open/license.html * * Any redistributions of this file including modified versions must * maintain this copyright notice. * *****************************************************************************//** * @file ooTimer.h * Timer structures and functions. */#ifndef _OOTIMER_H_#define _OOTIMER_H_#include "ooasn1.h"#include "ooSocket.h" /* needed for timeval */struct _OOTimer;typedef int (*OOTimerCbFunc)(void *data);typedef struct _OOTimer { struct timeval expireTime, timeout; void* cbData; OOBOOL reRegister; /* Callback functions */ OOTimerCbFunc timeoutCB;} OOTimer;#ifdef __cplusplusextern "C" {#endif/** * This function computes the relative expiration time from the current * time for the given timer object. * * @param pTimer Pointer to timer object. */EXTERN void ooTimerComputeExpireTime (OOTimer* pTimer);/** * This function creates and initializes a new timer object. * @param pctxt OOCTXT structure used for timer memory allocation. * @param pList Pointer to timer list in which newly created timer will * be inserted. * @param cb Timer callback function. * @param deltaSecs Time in seconds to timer expiration. * @param data Callback user data argument. * @param reRegister Should timer be re-registered after it expires? * @return Pointer to created timer object. */EXTERN OOTimer* ooTimerCreate (OOCTXT* pctxt, DList *pList, OOTimerCbFunc cb, OOUINT32 deltaSecs, void *data, OOBOOL reRegister);/** * This function deletes the given timer object. * @param pctxt Handle to OOCTXT structure used for timer memory. * @param pList timer list to operate on * @param pTimer Pointer to timer object. */EXTERN void ooTimerDelete (OOCTXT* pctxt, DList* pList, OOTimer* pTimer);/** * This function checks a timer to determine if it is expired. * * @param pTimer Pointer to timer object. * @return True if timer expired, false if not. */EXTERN OOBOOL ooTimerExpired (OOTimer* pTimer);/** * This function loops through the global timer list and fires all * expired timers by calling the registered callback functions. */EXTERN void ooTimerFireExpired (OOCTXT* pctxt, DList* pList);/** * This function inserts the given timer object into the correct * chronological position in the global timer list. * @param pctxt Pointer to OOCTXT structure used for memory allocation. * @param pList List in which timer has to be inserted. * @param pTimer Pointer to timer object. * @return Index to position where inserted in list. */EXTERN int ooTimerInsertEntry (OOCTXT* pctxt, DList* pList, OOTimer* pTimer);/** * This function calculates the relative time from the current time * that the first timer in global timer list will expire. * @param pList Handle to timer list * @param ptimeout timeval structure to receive timeout value. * @return ptimeout */EXTERN struct timeval* ooTimerNextTimeout (DList* pList, struct timeval* ptimeout);/** * This function resets the given timer object if its reregister flag * is set. Otherwise, it is deleted. * @param pctxt Pointer to OOCTXT structre used for memory allocation. * @param pList Pointer to timer list. * @param pTimer Pointer to timer object. */EXTERN void ooTimerReset (OOCTXT* pctxt, DList* pList, OOTimer* pTimer);/** * This function is used to compare two timeout values. * @param to1 First timeout value. * @param to2 Second timeout value. * * @return 1, if to1 > to2; 0, if to1 == to2; -1, if to1 < to2 */int ooCompareTimeouts(struct timeval *to1, struct timeval *to2);#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?