2014-02-20 21:34:41 +01:00
|
|
|
#ifndef __CAPWAP_TIMEOUT_HEADER__
|
|
|
|
#define __CAPWAP_TIMEOUT_HEADER__
|
|
|
|
|
2014-03-02 19:31:27 +01:00
|
|
|
#include "capwap_hash.h"
|
|
|
|
#include "capwap_list.h"
|
2014-02-20 21:34:41 +01:00
|
|
|
|
|
|
|
/* */
|
2014-03-02 19:31:27 +01:00
|
|
|
#define CAPWAP_TIMEOUT_BITFIELD_SIZE 128
|
|
|
|
#define CAPWAP_TIMEOUT_INFINITE -1
|
|
|
|
#define CAPWAP_TIMEOUT_INDEX_NO_SET 0
|
|
|
|
|
|
|
|
/* */
|
|
|
|
struct capwap_timeout {
|
|
|
|
uint32_t timeoutbitfield[CAPWAP_TIMEOUT_BITFIELD_SIZE];
|
|
|
|
struct capwap_hash* itemsreference;
|
|
|
|
struct capwap_list* itemstimeout;
|
2014-02-20 21:34:41 +01:00
|
|
|
};
|
|
|
|
|
2014-03-02 19:31:27 +01:00
|
|
|
/* */
|
|
|
|
typedef void (*capwap_timeout_expire)(struct capwap_timeout* timeout, unsigned long index, void* context, void* param);
|
|
|
|
|
|
|
|
struct capwap_timeout_item {
|
|
|
|
unsigned long index;
|
|
|
|
long durate;
|
|
|
|
struct timeval expire;
|
|
|
|
capwap_timeout_expire callback;
|
|
|
|
void* context;
|
|
|
|
void* param;
|
2014-02-20 21:34:41 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
/* */
|
2014-03-02 19:31:27 +01:00
|
|
|
struct capwap_timeout* capwap_timeout_init(void);
|
|
|
|
void capwap_timeout_free(struct capwap_timeout* timeout);
|
2014-02-20 21:34:41 +01:00
|
|
|
|
2014-03-02 19:31:27 +01:00
|
|
|
/* */
|
|
|
|
unsigned long capwap_timeout_createtimer(struct capwap_timeout* timeout);
|
|
|
|
void capwap_timeout_deletetimer(struct capwap_timeout* timeout, unsigned long index);
|
2014-02-20 21:34:41 +01:00
|
|
|
|
2014-03-02 19:31:27 +01:00
|
|
|
/* */
|
|
|
|
unsigned long capwap_timeout_set(struct capwap_timeout* timeout, unsigned long index, long durate, capwap_timeout_expire callback, void* context, void* param);
|
|
|
|
void capwap_timeout_unset(struct capwap_timeout* timeout, unsigned long index);
|
|
|
|
void capwap_timeout_unsetall(struct capwap_timeout* timeout);
|
2014-02-20 21:34:41 +01:00
|
|
|
|
2014-03-02 19:31:27 +01:00
|
|
|
long capwap_timeout_getcoming(struct capwap_timeout* timeout);
|
|
|
|
unsigned long capwap_timeout_hasexpired(struct capwap_timeout* timeout);
|
2014-02-20 21:34:41 +01:00
|
|
|
|
2014-03-02 19:31:27 +01:00
|
|
|
int capwap_timeout_wait(long durate);
|
2014-02-20 21:34:41 +01:00
|
|
|
|
|
|
|
#endif /* __CAPWAP_TIMEOUT_HEADER__ */
|