jabberd2  2.2.16
Defines
mio/mio_wsasync.h File Reference

Go to the source code of this file.

Defines

#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)

Define 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)

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)); \
    }                                                               \

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)); \
    }

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)); \
    }

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); \
    }

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); \
    }

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.