jabberd2  2.5.0
Macros
mio_wsasync.h File Reference

Go to the source code of this file.

Macros

#define WM_MIO_EVENT   (WM_APP + 100)
 
#define MIO_FUNCS
 
#define MIO_FD_VARS
 
#define MIO_VARS
 
#define MIO_INIT_VARS(m)
 
#define MIO_FREE_VARS(m)
 
#define MIO_ALLOC_FD(m, rfd)    _mio_alloc_fd(MIO(m), rfd)
 
#define MIO_FREE_FD(m, mfd)    _mio_free_fd(m, mfd)
 
#define MIO_DEQUEUE(m, mfd)
 
#define MIO_REMOVE_FD(m, mfd)    MIO_DEQUEUE(m, mfd)
 
#define MIO_CHECK(m, t)    _mio_select(m, t)
 
#define MIO_SET_READ(m, mfd)
 
#define MIO_SET_WRITE(m, mfd)
 
#define MIO_UNSET_READ(m, mfd)
 
#define MIO_UNSET_WRITE(m, mfd)
 
#define MIO_CAN_READ(m, iter)    (iter->revent & (FD_READ|FD_ACCEPT|FD_CONNECT|FD_CLOSE))
 
#define MIO_CAN_WRITE(m, iter)   ((iter->revent & FD_WRITE) || !(iter->revent & FD_READ) && (iter->revent & (FD_CONNECT|FD_CLOSE)))
 
#define MIO_CAN_FREE(m)    (!MIO(m)->defer_free)
 
#define MIO_INIT_ITERATOR(iter)   mio_priv_fd_t iter = NULL
 
#define MIO_ITERATE_RESULTS(m, retval, iter)   for(MIO(m)->defer_free = 1, iter = MIO(m)->select_fd; iter || ((MIO(m)->defer_free = 0)); iter = _mio_peek(m))
 
#define MIO_ITERATOR_FD(m, iter)   (&iter->mio_fd)
 

Macro Definition Documentation

#define WM_MIO_EVENT   (WM_APP + 100)

Definition at line 26 of file mio_wsasync.h.

#define MIO_FUNCS

Definition at line 28 of file mio_wsasync.h.

#define MIO_FD_VARS
Value:
struct mio_priv_fd_st *next_free; \
long event; \
long revent; \
int idx;

Definition at line 82 of file mio_wsasync.h.

#define MIO_VARS
Value:
HWND hwnd; \
UINT_PTR timer; \
int defer_free; \
int count; \
mio_priv_fd_t select_fd; \
mio_priv_fd_t fds; \
mio_priv_fd_t next_free;

Definition at line 88 of file mio_wsasync.h.

#define MIO_INIT_VARS (   m)

Definition at line 97 of file mio_wsasync.h.

#define MIO_FREE_VARS (   m)
Value:
do { \
DestroyWindow(MIO(m)->hwnd); \
free(MIO(m)->fds); \
} while(0)
#define MIO(m)
Definition: mio_impl.h:71

Definition at line 142 of file mio_wsasync.h.

#define MIO_ALLOC_FD (   m,
  rfd 
)    _mio_alloc_fd(MIO(m), rfd)

Definition at line 148 of file mio_wsasync.h.

#define MIO_FREE_FD (   m,
  mfd 
)    _mio_free_fd(m, mfd)

Definition at line 149 of file mio_wsasync.h.

#define MIO_DEQUEUE (   m,
  mfd 
)
Value:
if(mfd->event) { \
MSG msg; \
WSAAsyncSelect(mfd->mio_fd.fd, MIO(m)->hwnd, WM_MIO_EVENT + mfd->idx, 0); \
while(PeekMessage(&msg, MIO(m)->hwnd, WM_MIO_EVENT + mfd->idx, WM_MIO_EVENT + mfd->idx, PM_REMOVE)); \
} \
#define WM_MIO_EVENT
Definition: mio_wsasync.h:26
#define MIO(m)
Definition: mio_impl.h:71

Definition at line 151 of file mio_wsasync.h.

#define MIO_REMOVE_FD (   m,
  mfd 
)    MIO_DEQUEUE(m, mfd)

Definition at line 158 of file mio_wsasync.h.

#define MIO_CHECK (   m,
 
)    _mio_select(m, t)

Definition at line 160 of file mio_wsasync.h.

#define MIO_SET_READ (   m,
  mfd 
)
Value:
if(!(mfd->event & FD_READ)) { \
MIO_DEQUEUE(m, mfd); \
WSAAsyncSelect(mfd->mio_fd.fd, MIO(m)->hwnd, WM_MIO_EVENT + mfd->idx, (mfd->event |= FD_READ|FD_ACCEPT|FD_CONNECT|FD_CLOSE)); \
}
#define WM_MIO_EVENT
Definition: mio_wsasync.h:26
#define MIO(m)
Definition: mio_impl.h:71

Definition at line 162 of file mio_wsasync.h.

#define MIO_SET_WRITE (   m,
  mfd 
)
Value:
if(!(mfd->event & FD_WRITE)) { \
MIO_DEQUEUE(m, mfd); \
WSAAsyncSelect(mfd->mio_fd.fd, MIO(m)->hwnd, WM_MIO_EVENT + mfd->idx, (mfd->event |= FD_WRITE|FD_CONNECT|FD_CLOSE)); \
}
#define WM_MIO_EVENT
Definition: mio_wsasync.h:26
#define MIO(m)
Definition: mio_impl.h:71

Definition at line 167 of file mio_wsasync.h.

#define MIO_UNSET_READ (   m,
  mfd 
)
Value:
if(mfd->event & FD_READ) { \
mfd->event &= ~(FD_READ|FD_ACCEPT|FD_CONNECT|FD_CLOSE); \
if(mfd->event & FD_WRITE) \
mfd->event = FD_WRITE|FD_CONNECT|FD_CLOSE; \
MIO_DEQUEUE(m, mfd); \
WSAAsyncSelect(mfd->mio_fd.fd, MIO(m)->hwnd, WM_MIO_EVENT + mfd->idx, mfd->event); \
}
#define WM_MIO_EVENT
Definition: mio_wsasync.h:26
#define MIO(m)
Definition: mio_impl.h:71

Definition at line 173 of file mio_wsasync.h.

#define MIO_UNSET_WRITE (   m,
  mfd 
)
Value:
if(mfd->event & FD_WRITE) { \
mfd->event &= ~FD_WRITE; \
if(!(mfd->event & FD_READ)) \
mfd->event = 0; \
MIO_DEQUEUE(m, mfd); \
WSAAsyncSelect(mfd->mio_fd.fd, MIO(m)->hwnd, WM_MIO_EVENT + mfd->idx, mfd->event); \
}
#define WM_MIO_EVENT
Definition: mio_wsasync.h:26
#define MIO(m)
Definition: mio_impl.h:71

Definition at line 181 of file mio_wsasync.h.

#define MIO_CAN_READ (   m,
  iter 
)    (iter->revent & (FD_READ|FD_ACCEPT|FD_CONNECT|FD_CLOSE))

Definition at line 190 of file mio_wsasync.h.

#define MIO_CAN_WRITE (   m,
  iter 
)    ((iter->revent & FD_WRITE) || !(iter->revent & FD_READ) && (iter->revent & (FD_CONNECT|FD_CLOSE)))

Definition at line 191 of file mio_wsasync.h.

#define MIO_CAN_FREE (   m)    (!MIO(m)->defer_free)

Definition at line 192 of file mio_wsasync.h.

#define MIO_INIT_ITERATOR (   iter)    mio_priv_fd_t iter = NULL

Definition at line 194 of file mio_wsasync.h.

#define MIO_ITERATE_RESULTS (   m,
  retval,
  iter 
)    for(MIO(m)->defer_free = 1, iter = MIO(m)->select_fd; iter || ((MIO(m)->defer_free = 0)); iter = _mio_peek(m))

Definition at line 197 of file mio_wsasync.h.

#define MIO_ITERATOR_FD (   m,
  iter 
)    (&iter->mio_fd)

Definition at line 200 of file mio_wsasync.h.