This module provides portable abstraction for select() like API. The abstraction is needed so that it can utilize various event dispatching mechanisms that are available across platforms.
The API is very similar to normal select() usage.
Examples
For some examples on how to use the select API, please see:
◆ PJ_FD_CLR()
Remove the file descriptor fd from the set pointed to by fdsetp. If fd is not a member of this set, there shall be no effect on the set, nor will an error be returned.
- Parameters
-
fd | The socket descriptor. |
fdsetp | The descriptor set. |
◆ PJ_FD_COUNT()
This is an internal function, application shouldn't use this.
Get the number of descriptors in the set. This is defined in sock_select.c This function will only return the number of sockets set from PJ_FD_SET operation. When the set is modified by other means (such as by select()), the count will not be reflected here.
- Parameters
-
fdsetp | The descriptor set. |
- Returns
- Number of descriptors in the set.
◆ PJ_FD_ISSET()
Evaluate to non-zero if the file descriptor fd is a member of the set pointed to by fdsetp, and shall evaluate to zero otherwise.
- Parameters
-
fd | The socket descriptor. |
fdsetp | The descriptor set. |
- Returns
- Nonzero if fd is member of the descriptor set.
◆ PJ_FD_SET()
Add the file descriptor fd to the set pointed to by fdsetp. If the file descriptor fd is already in this set, there shall be no effect on the set, nor will an error be returned.
- Parameters
-
fd | The socket descriptor. |
fdsetp | The descriptor set. |
◆ PJ_FD_ZERO()
Initialize the descriptor set pointed to by fdsetp to the null set.
- Parameters
-
fdsetp | The descriptor set. |
◆ pj_sock_select()
This function wait for a number of file descriptors to change status. The behaviour is the same as select() function call which appear in standard BSD socket libraries.
- Parameters
-
n | On Unices, this specifies the highest-numbered descriptor in any of the three set, plus 1. On Windows, the value is ignored. |
readfds | Optional pointer to a set of sockets to be checked for readability. |
writefds | Optional pointer to a set of sockets to be checked for writability. |
exceptfds | Optional pointer to a set of sockets to be checked for errors. |
timeout | Maximum time for select to wait, or null for blocking operations. |
- Returns
- The total number of socket handles that are ready, or zero if the time limit expired, or -1 if an error occurred.