29 # if defined(BUILDING_UV_SHARED) 31 # define UV_EXTERN __declspec(dllexport) 32 # elif defined(USING_UV_SHARED) 34 # define UV_EXTERN __declspec(dllimport) 40 # define UV_EXTERN __attribute__((visibility("default"))) 46 #include "uv/version.h" 59 #define UV_ERRNO_MAP(XX) \ 60 XX(E2BIG, "argument list too long") \ 61 XX(EACCES, "permission denied") \ 62 XX(EADDRINUSE, "address already in use") \ 63 XX(EADDRNOTAVAIL, "address not available") \ 64 XX(EAFNOSUPPORT, "address family not supported") \ 65 XX(EAGAIN, "resource temporarily unavailable") \ 66 XX(EAI_ADDRFAMILY, "address family not supported") \ 67 XX(EAI_AGAIN, "temporary failure") \ 68 XX(EAI_BADFLAGS, "bad ai_flags value") \ 69 XX(EAI_BADHINTS, "invalid value for hints") \ 70 XX(EAI_CANCELED, "request canceled") \ 71 XX(EAI_FAIL, "permanent failure") \ 72 XX(EAI_FAMILY, "ai_family not supported") \ 73 XX(EAI_MEMORY, "out of memory") \ 74 XX(EAI_NODATA, "no address") \ 75 XX(EAI_NONAME, "unknown node or service") \ 76 XX(EAI_OVERFLOW, "argument buffer overflow") \ 77 XX(EAI_PROTOCOL, "resolved protocol is unknown") \ 78 XX(EAI_SERVICE, "service not available for socket type") \ 79 XX(EAI_SOCKTYPE, "socket type not supported") \ 80 XX(EALREADY, "connection already in progress") \ 81 XX(EBADF, "bad file descriptor") \ 82 XX(EBUSY, "resource busy or locked") \ 83 XX(ECANCELED, "operation canceled") \ 84 XX(ECHARSET, "invalid Unicode character") \ 85 XX(ECONNABORTED, "software caused connection abort") \ 86 XX(ECONNREFUSED, "connection refused") \ 87 XX(ECONNRESET, "connection reset by peer") \ 88 XX(EDESTADDRREQ, "destination address required") \ 89 XX(EEXIST, "file already exists") \ 90 XX(EFAULT, "bad address in system call argument") \ 91 XX(EFBIG, "file too large") \ 92 XX(EHOSTUNREACH, "host is unreachable") \ 93 XX(EINTR, "interrupted system call") \ 94 XX(EINVAL, "invalid argument") \ 95 XX(EIO, "i/o error") \ 96 XX(EISCONN, "socket is already connected") \ 97 XX(EISDIR, "illegal operation on a directory") \ 98 XX(ELOOP, "too many symbolic links encountered") \ 99 XX(EMFILE, "too many open files") \ 100 XX(EMSGSIZE, "message too long") \ 101 XX(ENAMETOOLONG, "name too long") \ 102 XX(ENETDOWN, "network is down") \ 103 XX(ENETUNREACH, "network is unreachable") \ 104 XX(ENFILE, "file table overflow") \ 105 XX(ENOBUFS, "no buffer space available") \ 106 XX(ENODEV, "no such device") \ 107 XX(ENOENT, "no such file or directory") \ 108 XX(ENOMEM, "not enough memory") \ 109 XX(ENONET, "machine is not on the network") \ 110 XX(ENOPROTOOPT, "protocol not available") \ 111 XX(ENOSPC, "no space left on device") \ 112 XX(ENOSYS, "function not implemented") \ 113 XX(ENOTCONN, "socket is not connected") \ 114 XX(ENOTDIR, "not a directory") \ 115 XX(ENOTEMPTY, "directory not empty") \ 116 XX(ENOTSOCK, "socket operation on non-socket") \ 117 XX(ENOTSUP, "operation not supported on socket") \ 118 XX(EPERM, "operation not permitted") \ 119 XX(EPIPE, "broken pipe") \ 120 XX(EPROTO, "protocol error") \ 121 XX(EPROTONOSUPPORT, "protocol not supported") \ 122 XX(EPROTOTYPE, "protocol wrong type for socket") \ 123 XX(ERANGE, "result too large") \ 124 XX(EROFS, "read-only file system") \ 125 XX(ESHUTDOWN, "cannot send after transport endpoint shutdown") \ 126 XX(ESPIPE, "invalid seek") \ 127 XX(ESRCH, "no such process") \ 128 XX(ETIMEDOUT, "connection timed out") \ 129 XX(ETXTBSY, "text file is busy") \ 130 XX(EXDEV, "cross-device link not permitted") \ 131 XX(UNKNOWN, "unknown error") \ 132 XX(EOF, "end of file") \ 133 XX(ENXIO, "no such device or address") \ 134 XX(EMLINK, "too many links") \ 135 XX(EHOSTDOWN, "host is down") \ 136 XX(EREMOTEIO, "remote I/O error") \ 137 XX(ENOTTY, "inappropriate ioctl for device") \ 138 XX(EFTYPE, "inappropriate file type or format") \ 140 #define UV_HANDLE_TYPE_MAP(XX) \ 143 XX(FS_EVENT, fs_event) \ 144 XX(FS_POLL, fs_poll) \ 147 XX(NAMED_PIPE, pipe) \ 149 XX(PREPARE, prepare) \ 150 XX(PROCESS, process) \ 158 #define UV_REQ_TYPE_MAP(XX) \ 160 XX(CONNECT, connect) \ 162 XX(SHUTDOWN, shutdown) \ 163 XX(UDP_SEND, udp_send) \ 166 XX(GETADDRINFO, getaddrinfo) \ 167 XX(GETNAMEINFO, getnameinfo) \ 170 #define XX(code, _) UV_ ## code = UV__ ## code, 173 UV_ERRNO_MAX = UV__EOF - 1
177 UV_UNKNOWN_HANDLE = 0,
178 #define XX(uc, lc) UV_##uc, 179 UV_HANDLE_TYPE_MAP(XX)
187 #define XX(uc, lc) UV_##uc, 242 UV_EXTERN
unsigned int uv_version(
void);
243 UV_EXTERN
const char* uv_version_string(
void);
245 typedef void* (*uv_malloc_func)(
size_t size);
246 typedef void* (*uv_realloc_func)(
void* ptr,
size_t size);
247 typedef void* (*uv_calloc_func)(
size_t count,
size_t size);
248 typedef void (*uv_free_func)(
void* ptr);
250 UV_EXTERN
int uv_replace_allocator(uv_malloc_func malloc_func,
251 uv_realloc_func realloc_func,
252 uv_calloc_func calloc_func,
253 uv_free_func free_func);
255 UV_EXTERN
uv_loop_t* uv_default_loop(
void);
256 UV_EXTERN
int uv_loop_init(
uv_loop_t* loop);
257 UV_EXTERN
int uv_loop_close(
uv_loop_t* loop);
269 UV_EXTERN
void uv_loop_delete(
uv_loop_t*);
270 UV_EXTERN
size_t uv_loop_size(
void);
271 UV_EXTERN
int uv_loop_alive(
const uv_loop_t* loop);
272 UV_EXTERN
int uv_loop_configure(
uv_loop_t* loop, uv_loop_option option, ...);
273 UV_EXTERN
int uv_loop_fork(
uv_loop_t* loop);
275 UV_EXTERN
int uv_run(
uv_loop_t*, uv_run_mode mode);
282 UV_EXTERN
void uv_update_time(
uv_loop_t*);
283 UV_EXTERN uint64_t uv_now(
const uv_loop_t*);
285 UV_EXTERN
int uv_backend_fd(
const uv_loop_t*);
286 UV_EXTERN
int uv_backend_timeout(
const uv_loop_t*);
289 size_t suggested_size,
294 typedef void (*uv_write_cb)(
uv_write_t* req,
int status);
295 typedef void (*uv_connect_cb)(
uv_connect_t* req,
int status);
296 typedef void (*uv_shutdown_cb)(
uv_shutdown_t* req,
int status);
297 typedef void (*uv_connection_cb)(
uv_stream_t* server,
int status);
299 typedef void (*uv_poll_cb)(
uv_poll_t* handle,
int status,
int events);
300 typedef void (*uv_timer_cb)(
uv_timer_t* handle);
301 typedef void (*uv_async_cb)(
uv_async_t* handle);
303 typedef void (*uv_check_cb)(
uv_check_t* handle);
304 typedef void (*uv_idle_cb)(
uv_idle_t* handle);
305 typedef void (*uv_exit_cb)(
uv_process_t*, int64_t exit_status,
int term_signal);
306 typedef void (*uv_walk_cb)(
uv_handle_t* handle,
void* arg);
307 typedef void (*uv_fs_cb)(
uv_fs_t* req);
308 typedef void (*uv_work_cb)(
uv_work_t* req);
309 typedef void (*uv_after_work_cb)(
uv_work_t* req,
int status);
312 struct addrinfo* res);
315 const char* hostname,
316 const char* service);
345 const char* filename,
354 typedef void (*uv_signal_cb)(
uv_signal_t* handle,
int signum);
363 UV_EXTERN
int uv_translate_sys_error(
int sys_errno);
365 UV_EXTERN
const char* uv_strerror(
int err);
366 UV_EXTERN
const char* uv_err_name(
int err);
369 #define UV_REQ_FIELDS \ 376 UV_REQ_PRIVATE_FIELDS \ 396 UV_SHUTDOWN_PRIVATE_FIELDS
400 #define UV_HANDLE_FIELDS \ 405 uv_handle_type type; \ 407 uv_close_cb close_cb; \ 408 void* handle_queue[2]; \ 413 UV_HANDLE_PRIVATE_FIELDS \ 420 UV_EXTERN
size_t uv_handle_size(uv_handle_type type);
421 UV_EXTERN uv_handle_type uv_handle_get_type(
const uv_handle_t* handle);
422 UV_EXTERN
const char* uv_handle_type_name(uv_handle_type type);
423 UV_EXTERN
void* uv_handle_get_data(
const uv_handle_t* handle);
425 UV_EXTERN
void uv_handle_set_data(
uv_handle_t* handle,
void* data);
427 UV_EXTERN
size_t uv_req_size(uv_req_type type);
428 UV_EXTERN
void* uv_req_get_data(
const uv_req_t* req);
429 UV_EXTERN
void uv_req_set_data(
uv_req_t* req,
void* data);
430 UV_EXTERN uv_req_type uv_req_get_type(
const uv_req_t* req);
431 UV_EXTERN
const char* uv_req_type_name(uv_req_type type);
433 UV_EXTERN
int uv_is_active(
const uv_handle_t* handle);
435 UV_EXTERN
void uv_walk(
uv_loop_t* loop, uv_walk_cb walk_cb,
void* arg);
438 UV_EXTERN
void uv_print_all_handles(
uv_loop_t* loop, FILE* stream);
439 UV_EXTERN
void uv_print_active_handles(
uv_loop_t* loop, FILE* stream);
441 UV_EXTERN
void uv_close(
uv_handle_t* handle, uv_close_cb close_cb);
443 UV_EXTERN
int uv_send_buffer_size(
uv_handle_t* handle,
int* value);
444 UV_EXTERN
int uv_recv_buffer_size(
uv_handle_t* handle,
int* value);
446 UV_EXTERN
int uv_fileno(
const uv_handle_t* handle, uv_os_fd_t* fd);
448 UV_EXTERN
uv_buf_t uv_buf_init(
char* base,
unsigned int len);
451 #define UV_STREAM_FIELDS \ 453 size_t write_queue_size; \ 454 uv_alloc_cb alloc_cb; \ 455 uv_read_cb read_cb; \ 457 UV_STREAM_PRIVATE_FIELDS 471 UV_EXTERN
size_t uv_stream_get_write_queue_size(
const uv_stream_t* stream);
473 UV_EXTERN
int uv_listen(
uv_stream_t* stream,
int backlog, uv_connection_cb cb);
477 uv_alloc_cb alloc_cb,
502 UV_WRITE_PRIVATE_FIELDS
506 UV_EXTERN
int uv_is_readable(
const uv_stream_t* handle);
507 UV_EXTERN
int uv_is_writable(
const uv_stream_t* handle);
509 UV_EXTERN
int uv_stream_set_blocking(
uv_stream_t* handle,
int blocking);
511 UV_EXTERN
int uv_is_closing(
const uv_handle_t* handle);
522 UV_TCP_PRIVATE_FIELDS
527 UV_EXTERN
int uv_tcp_open(
uv_tcp_t* handle, uv_os_sock_t sock);
528 UV_EXTERN
int uv_tcp_nodelay(
uv_tcp_t* handle,
int enable);
529 UV_EXTERN
int uv_tcp_keepalive(
uv_tcp_t* handle,
532 UV_EXTERN
int uv_tcp_simultaneous_accepts(
uv_tcp_t* handle,
int enable);
539 UV_EXTERN
int uv_tcp_bind(
uv_tcp_t* handle,
540 const struct sockaddr* addr,
542 UV_EXTERN
int uv_tcp_getsockname(
const uv_tcp_t* handle,
543 struct sockaddr* name,
545 UV_EXTERN
int uv_tcp_getpeername(
const uv_tcp_t* handle,
546 struct sockaddr* name,
550 const struct sockaddr* addr,
558 UV_CONNECT_PRIVATE_FIELDS
585 typedef void (*uv_udp_send_cb)(
uv_udp_send_t* req,
int status);
586 typedef void (*uv_udp_recv_cb)(
uv_udp_t* handle,
589 const struct sockaddr* addr,
600 size_t send_queue_size;
604 size_t send_queue_count;
605 UV_UDP_PRIVATE_FIELDS
613 UV_UDP_SEND_PRIVATE_FIELDS
618 UV_EXTERN
int uv_udp_open(
uv_udp_t* handle, uv_os_sock_t sock);
619 UV_EXTERN
int uv_udp_bind(
uv_udp_t* handle,
620 const struct sockaddr* addr,
623 UV_EXTERN
int uv_udp_getsockname(
const uv_udp_t* handle,
624 struct sockaddr* name,
626 UV_EXTERN
int uv_udp_set_membership(
uv_udp_t* handle,
627 const char* multicast_addr,
628 const char* interface_addr,
629 uv_membership membership);
630 UV_EXTERN
int uv_udp_set_multicast_loop(
uv_udp_t* handle,
int on);
631 UV_EXTERN
int uv_udp_set_multicast_ttl(
uv_udp_t* handle,
int ttl);
632 UV_EXTERN
int uv_udp_set_multicast_interface(
uv_udp_t* handle,
633 const char* interface_addr);
634 UV_EXTERN
int uv_udp_set_broadcast(
uv_udp_t* handle,
int on);
635 UV_EXTERN
int uv_udp_set_ttl(
uv_udp_t* handle,
int ttl);
640 const struct sockaddr* addr,
641 uv_udp_send_cb send_cb);
642 UV_EXTERN
int uv_udp_try_send(
uv_udp_t* handle,
645 const struct sockaddr* addr);
646 UV_EXTERN
int uv_udp_recv_start(
uv_udp_t* handle,
647 uv_alloc_cb alloc_cb,
648 uv_udp_recv_cb recv_cb);
649 UV_EXTERN
int uv_udp_recv_stop(
uv_udp_t* handle);
650 UV_EXTERN
size_t uv_udp_get_send_queue_size(
const uv_udp_t* handle);
651 UV_EXTERN
size_t uv_udp_get_send_queue_count(
const uv_udp_t* handle);
662 UV_TTY_PRIVATE_FIELDS
675 UV_EXTERN
int uv_tty_set_mode(
uv_tty_t*, uv_tty_mode_t mode);
676 UV_EXTERN
int uv_tty_reset_mode(
void);
677 UV_EXTERN
int uv_tty_get_winsize(
uv_tty_t*,
int* width,
int* height);
679 inline int uv_tty_set_mode(
uv_tty_t* handle,
int mode) {
680 return uv_tty_set_mode(handle, static_cast<uv_tty_mode_t>(mode));
683 UV_EXTERN uv_handle_type uv_guess_handle(uv_file file);
695 UV_PIPE_PRIVATE_FIELDS
699 UV_EXTERN
int uv_pipe_open(
uv_pipe_t*, uv_file file);
700 UV_EXTERN
int uv_pipe_bind(
uv_pipe_t* handle,
const char* name);
705 UV_EXTERN
int uv_pipe_getsockname(
const uv_pipe_t* handle,
708 UV_EXTERN
int uv_pipe_getpeername(
const uv_pipe_t* handle,
711 UV_EXTERN
void uv_pipe_pending_instances(
uv_pipe_t* handle,
int count);
712 UV_EXTERN
int uv_pipe_pending_count(
uv_pipe_t* handle);
713 UV_EXTERN uv_handle_type uv_pipe_pending_type(
uv_pipe_t* handle);
714 UV_EXTERN
int uv_pipe_chmod(
uv_pipe_t* handle,
int flags);
720 UV_POLL_PRIVATE_FIELDS
731 UV_EXTERN
int uv_poll_init_socket(
uv_loop_t* loop,
733 uv_os_sock_t socket);
734 UV_EXTERN
int uv_poll_start(
uv_poll_t* handle,
int events, uv_poll_cb cb);
735 UV_EXTERN
int uv_poll_stop(
uv_poll_t* handle);
740 UV_PREPARE_PRIVATE_FIELDS
744 UV_EXTERN
int uv_prepare_start(
uv_prepare_t* prepare, uv_prepare_cb cb);
750 UV_CHECK_PRIVATE_FIELDS
754 UV_EXTERN
int uv_check_start(
uv_check_t* check, uv_check_cb cb);
755 UV_EXTERN
int uv_check_stop(
uv_check_t* check);
760 UV_IDLE_PRIVATE_FIELDS
764 UV_EXTERN
int uv_idle_start(
uv_idle_t* idle, uv_idle_cb cb);
765 UV_EXTERN
int uv_idle_stop(
uv_idle_t* idle);
770 UV_ASYNC_PRIVATE_FIELDS
775 uv_async_cb async_cb);
776 UV_EXTERN
int uv_async_send(
uv_async_t* async);
786 UV_TIMER_PRIVATE_FIELDS
790 UV_EXTERN
int uv_timer_start(
uv_timer_t* handle,
794 UV_EXTERN
int uv_timer_stop(
uv_timer_t* handle);
795 UV_EXTERN
int uv_timer_again(
uv_timer_t* handle);
796 UV_EXTERN
void uv_timer_set_repeat(
uv_timer_t* handle, uint64_t repeat);
797 UV_EXTERN uint64_t uv_timer_get_repeat(
const uv_timer_t* handle);
810 UV_GETADDRINFO_PRIVATE_FIELDS
814 UV_EXTERN
int uv_getaddrinfo(
uv_loop_t* loop,
816 uv_getaddrinfo_cb getaddrinfo_cb,
819 const struct addrinfo* hints);
820 UV_EXTERN
void uv_freeaddrinfo(
struct addrinfo* ai);
833 UV_GETNAMEINFO_PRIVATE_FIELDS
836 UV_EXTERN
int uv_getnameinfo(
uv_loop_t* loop,
838 uv_getnameinfo_cb getnameinfo_cb,
839 const struct sockaddr* addr,
846 UV_CREATE_PIPE = 0x01,
847 UV_INHERIT_FD = 0x02,
848 UV_INHERIT_STREAM = 0x04,
855 UV_READABLE_PIPE = 0x10,
856 UV_WRITABLE_PIPE = 0x20,
862 UV_OVERLAPPED_PIPE = 0x40
866 uv_stdio_flags flags;
922 enum uv_process_flags {
928 UV_PROCESS_SETUID = (1 << 0),
934 UV_PROCESS_SETGID = (1 << 1),
940 UV_PROCESS_WINDOWS_VERBATIM_ARGUMENTS = (1 << 2),
948 UV_PROCESS_DETACHED = (1 << 3),
954 UV_PROCESS_WINDOWS_HIDE = (1 << 4)
964 UV_PROCESS_PRIVATE_FIELDS
968 uv_process_t* handle,
970 UV_EXTERN
int uv_process_kill(uv_process_t*,
int signum);
971 UV_EXTERN
int uv_kill(
int pid,
int signum);
972 UV_EXTERN uv_pid_t uv_process_get_pid(
const uv_process_t*);
982 uv_after_work_cb after_work_cb;
983 UV_WORK_PRIVATE_FIELDS
986 UV_EXTERN
int uv_queue_work(
uv_loop_t* loop,
989 uv_after_work_cb after_work_cb);
991 UV_EXTERN
int uv_cancel(
uv_req_t* req);
1013 struct sockaddr_in address4;
1014 struct sockaddr_in6 address6;
1017 struct sockaddr_in netmask4;
1018 struct sockaddr_in6 netmask6;
1043 uv_dirent_type_t type;
1046 UV_EXTERN
char** uv_setup_args(
int argc,
char** argv);
1047 UV_EXTERN
int uv_get_process_title(
char* buffer,
size_t size);
1048 UV_EXTERN
int uv_set_process_title(
const char* title);
1049 UV_EXTERN
int uv_resident_set_memory(
size_t* rss);
1050 UV_EXTERN
int uv_uptime(
double* uptime);
1051 UV_EXTERN uv_os_fd_t uv_get_osfhandle(
int fd);
1068 uint64_t ru_inblock;
1069 uint64_t ru_oublock;
1072 uint64_t ru_nsignals;
1079 UV_EXTERN
int uv_os_homedir(
char* buffer,
size_t* size);
1080 UV_EXTERN
int uv_os_tmpdir(
char* buffer,
size_t* size);
1082 UV_EXTERN
void uv_os_free_passwd(
uv_passwd_t* pwd);
1083 UV_EXTERN uv_pid_t uv_os_getpid(
void);
1084 UV_EXTERN uv_pid_t uv_os_getppid(
void);
1086 UV_EXTERN
int uv_cpu_info(
uv_cpu_info_t** cpu_infos,
int* count);
1087 UV_EXTERN
void uv_free_cpu_info(
uv_cpu_info_t* cpu_infos,
int count);
1094 UV_EXTERN
int uv_os_getenv(
const char* name,
char* buffer,
size_t* size);
1095 UV_EXTERN
int uv_os_setenv(
const char* name,
const char* value);
1096 UV_EXTERN
int uv_os_unsetenv(
const char* name);
1098 UV_EXTERN
int uv_os_gethostname(
char* buffer,
size_t* size);
1146 UV_FS_PRIVATE_FIELDS
1149 UV_EXTERN uv_fs_type uv_fs_get_type(
const uv_fs_t*);
1150 UV_EXTERN ssize_t uv_fs_get_result(
const uv_fs_t*);
1151 UV_EXTERN
void* uv_fs_get_ptr(
const uv_fs_t*);
1152 UV_EXTERN
const char* uv_fs_get_path(
const uv_fs_t*);
1155 UV_EXTERN
void uv_fs_req_cleanup(
uv_fs_t* req);
1156 UV_EXTERN
int uv_fs_close(
uv_loop_t* loop,
1160 UV_EXTERN
int uv_fs_open(
uv_loop_t* loop,
1166 UV_EXTERN
int uv_fs_read(
uv_loop_t* loop,
1173 UV_EXTERN
int uv_fs_unlink(
uv_loop_t* loop,
1177 UV_EXTERN
int uv_fs_write(
uv_loop_t* loop,
1188 #define UV_FS_COPYFILE_EXCL 0x0001 1194 #define UV_FS_COPYFILE_FICLONE 0x0002 1200 #define UV_FS_COPYFILE_FICLONE_FORCE 0x0004 1202 UV_EXTERN
int uv_fs_copyfile(
uv_loop_t* loop,
1205 const char* new_path,
1208 UV_EXTERN
int uv_fs_mkdir(
uv_loop_t* loop,
1213 UV_EXTERN
int uv_fs_mkdtemp(
uv_loop_t* loop,
1217 UV_EXTERN
int uv_fs_rmdir(
uv_loop_t* loop,
1221 UV_EXTERN
int uv_fs_scandir(
uv_loop_t* loop,
1226 UV_EXTERN
int uv_fs_scandir_next(
uv_fs_t* req,
1228 UV_EXTERN
int uv_fs_stat(
uv_loop_t* loop,
1232 UV_EXTERN
int uv_fs_fstat(
uv_loop_t* loop,
1236 UV_EXTERN
int uv_fs_rename(
uv_loop_t* loop,
1239 const char* new_path,
1241 UV_EXTERN
int uv_fs_fsync(
uv_loop_t* loop,
1245 UV_EXTERN
int uv_fs_fdatasync(
uv_loop_t* loop,
1249 UV_EXTERN
int uv_fs_ftruncate(
uv_loop_t* loop,
1254 UV_EXTERN
int uv_fs_sendfile(
uv_loop_t* loop,
1261 UV_EXTERN
int uv_fs_access(
uv_loop_t* loop,
1266 UV_EXTERN
int uv_fs_chmod(
uv_loop_t* loop,
1271 UV_EXTERN
int uv_fs_utime(
uv_loop_t* loop,
1277 UV_EXTERN
int uv_fs_futime(
uv_loop_t* loop,
1283 UV_EXTERN
int uv_fs_lstat(
uv_loop_t* loop,
1287 UV_EXTERN
int uv_fs_link(
uv_loop_t* loop,
1290 const char* new_path,
1297 #define UV_FS_SYMLINK_DIR 0x0001 1303 #define UV_FS_SYMLINK_JUNCTION 0x0002 1305 UV_EXTERN
int uv_fs_symlink(
uv_loop_t* loop,
1308 const char* new_path,
1311 UV_EXTERN
int uv_fs_readlink(
uv_loop_t* loop,
1315 UV_EXTERN
int uv_fs_realpath(
uv_loop_t* loop,
1319 UV_EXTERN
int uv_fs_fchmod(
uv_loop_t* loop,
1324 UV_EXTERN
int uv_fs_chown(
uv_loop_t* loop,
1330 UV_EXTERN
int uv_fs_fchown(
uv_loop_t* loop,
1336 UV_EXTERN
int uv_fs_lchown(
uv_loop_t* loop,
1354 UV_FS_EVENT_PRIVATE_FIELDS
1369 uv_fs_poll_cb poll_cb,
1371 unsigned int interval);
1380 uv_signal_cb signal_cb;
1382 UV_SIGNAL_PRIVATE_FIELDS
1386 UV_EXTERN
int uv_signal_start(
uv_signal_t* handle,
1387 uv_signal_cb signal_cb,
1389 UV_EXTERN
int uv_signal_start_oneshot(
uv_signal_t* handle,
1390 uv_signal_cb signal_cb,
1392 UV_EXTERN
int uv_signal_stop(
uv_signal_t* handle);
1394 UV_EXTERN
void uv_loadavg(
double avg[3]);
1400 enum uv_fs_event_flags {
1408 UV_FS_EVENT_WATCH_ENTRY = 1,
1417 UV_FS_EVENT_STAT = 2,
1424 UV_FS_EVENT_RECURSIVE = 4
1432 unsigned int flags);
1438 UV_EXTERN
int uv_ip4_addr(
const char* ip,
int port,
struct sockaddr_in* addr);
1439 UV_EXTERN
int uv_ip6_addr(
const char* ip,
int port,
struct sockaddr_in6* addr);
1441 UV_EXTERN
int uv_ip4_name(
const struct sockaddr_in* src,
char* dst,
size_t size);
1442 UV_EXTERN
int uv_ip6_name(
const struct sockaddr_in6* src,
char* dst,
size_t size);
1444 UV_EXTERN
int uv_inet_ntop(
int af,
const void* src,
char* dst,
size_t size);
1445 UV_EXTERN
int uv_inet_pton(
int af,
const char* src,
void* dst);
1447 #if defined(IF_NAMESIZE) 1448 # define UV_IF_NAMESIZE (IF_NAMESIZE + 1) 1449 #elif defined(IFNAMSIZ) 1450 # define UV_IF_NAMESIZE (IFNAMSIZ + 1) 1452 # define UV_IF_NAMESIZE (16 + 1) 1455 UV_EXTERN
int uv_if_indextoname(
unsigned int ifindex,
1458 UV_EXTERN
int uv_if_indextoiid(
unsigned int ifindex,
1462 UV_EXTERN
int uv_exepath(
char* buffer,
size_t* size);
1464 UV_EXTERN
int uv_cwd(
char* buffer,
size_t* size);
1466 UV_EXTERN
int uv_chdir(
const char* dir);
1468 UV_EXTERN uint64_t uv_get_free_memory(
void);
1469 UV_EXTERN uint64_t uv_get_total_memory(
void);
1471 UV_EXTERN uint64_t uv_hrtime(
void);
1473 UV_EXTERN
void uv_disable_stdio_inheritance(
void);
1475 UV_EXTERN
int uv_dlopen(
const char* filename,
uv_lib_t* lib);
1476 UV_EXTERN
void uv_dlclose(
uv_lib_t* lib);
1477 UV_EXTERN
int uv_dlsym(
uv_lib_t* lib,
const char* name,
void** ptr);
1478 UV_EXTERN
const char* uv_dlerror(
const uv_lib_t* lib);
1480 UV_EXTERN
int uv_mutex_init(uv_mutex_t* handle);
1481 UV_EXTERN
int uv_mutex_init_recursive(uv_mutex_t* handle);
1482 UV_EXTERN
void uv_mutex_destroy(uv_mutex_t* handle);
1483 UV_EXTERN
void uv_mutex_lock(uv_mutex_t* handle);
1484 UV_EXTERN
int uv_mutex_trylock(uv_mutex_t* handle);
1485 UV_EXTERN
void uv_mutex_unlock(uv_mutex_t* handle);
1487 UV_EXTERN
int uv_rwlock_init(
uv_rwlock_t* rwlock);
1488 UV_EXTERN
void uv_rwlock_destroy(
uv_rwlock_t* rwlock);
1489 UV_EXTERN
void uv_rwlock_rdlock(
uv_rwlock_t* rwlock);
1490 UV_EXTERN
int uv_rwlock_tryrdlock(
uv_rwlock_t* rwlock);
1491 UV_EXTERN
void uv_rwlock_rdunlock(
uv_rwlock_t* rwlock);
1492 UV_EXTERN
void uv_rwlock_wrlock(
uv_rwlock_t* rwlock);
1493 UV_EXTERN
int uv_rwlock_trywrlock(
uv_rwlock_t* rwlock);
1494 UV_EXTERN
void uv_rwlock_wrunlock(
uv_rwlock_t* rwlock);
1496 UV_EXTERN
int uv_sem_init(uv_sem_t* sem,
unsigned int value);
1497 UV_EXTERN
void uv_sem_destroy(uv_sem_t* sem);
1498 UV_EXTERN
void uv_sem_post(uv_sem_t* sem);
1499 UV_EXTERN
void uv_sem_wait(uv_sem_t* sem);
1500 UV_EXTERN
int uv_sem_trywait(uv_sem_t* sem);
1502 UV_EXTERN
int uv_cond_init(
uv_cond_t* cond);
1503 UV_EXTERN
void uv_cond_destroy(
uv_cond_t* cond);
1504 UV_EXTERN
void uv_cond_signal(
uv_cond_t* cond);
1505 UV_EXTERN
void uv_cond_broadcast(
uv_cond_t* cond);
1507 UV_EXTERN
int uv_barrier_init(
uv_barrier_t* barrier,
unsigned int count);
1508 UV_EXTERN
void uv_barrier_destroy(
uv_barrier_t* barrier);
1511 UV_EXTERN
void uv_cond_wait(
uv_cond_t* cond, uv_mutex_t* mutex);
1512 UV_EXTERN
int uv_cond_timedwait(
uv_cond_t* cond,
1516 UV_EXTERN
void uv_once(
uv_once_t* guard,
void (*callback)(
void));
1518 UV_EXTERN
int uv_key_create(
uv_key_t* key);
1519 UV_EXTERN
void uv_key_delete(
uv_key_t* key);
1520 UV_EXTERN
void* uv_key_get(
uv_key_t* key);
1521 UV_EXTERN
void uv_key_set(
uv_key_t* key,
void* value);
1523 typedef void (*uv_thread_cb)(
void* arg);
1525 UV_EXTERN
int uv_thread_create(uv_thread_t* tid, uv_thread_cb entry,
void* arg);
1526 UV_EXTERN uv_thread_t uv_thread_self(
void);
1527 UV_EXTERN
int uv_thread_join(uv_thread_t *tid);
1528 UV_EXTERN
int uv_thread_equal(
const uv_thread_t* t1,
const uv_thread_t* t2);
1531 #define XX(_, name) uv_ ## name ## _t name; 1533 UV_HANDLE_TYPE_MAP(XX)
1546 unsigned int active_handles;
1547 void* handle_queue[2];
1553 unsigned int stop_flag;
1554 UV_LOOP_PRIVATE_FIELDS
1557 UV_EXTERN
void* uv_loop_get_data(
const uv_loop_t*);
1558 UV_EXTERN
void uv_loop_set_data(
uv_loop_t*,
void* data);
1561 #undef UV_HANDLE_TYPE_PRIVATE 1562 #undef UV_REQ_TYPE_PRIVATE 1563 #undef UV_REQ_PRIVATE_FIELDS 1564 #undef UV_STREAM_PRIVATE_FIELDS 1565 #undef UV_TCP_PRIVATE_FIELDS 1566 #undef UV_PREPARE_PRIVATE_FIELDS 1567 #undef UV_CHECK_PRIVATE_FIELDS 1568 #undef UV_IDLE_PRIVATE_FIELDS 1569 #undef UV_ASYNC_PRIVATE_FIELDS 1570 #undef UV_TIMER_PRIVATE_FIELDS 1571 #undef UV_GETADDRINFO_PRIVATE_FIELDS 1572 #undef UV_GETNAMEINFO_PRIVATE_FIELDS 1573 #undef UV_FS_REQ_PRIVATE_FIELDS 1574 #undef UV_WORK_PRIVATE_FIELDS 1575 #undef UV_FS_EVENT_PRIVATE_FIELDS 1576 #undef UV_SIGNAL_PRIVATE_FIELDS 1577 #undef UV_LOOP_PRIVATE_FIELDS 1578 #undef UV_LOOP_PRIVATE_PLATFORM_FIELDS
It should be possible to cast uv_buf_t[] to WSABUF[] see http://msdn.microsoft.com/en-us/library/ms74...
Definition: win.h:213
auto size(R &&Range, typename std::enable_if< std::is_same< typename std::iterator_traits< decltype(Range.begin())>::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr) -> decltype(std::distance(Range.begin(), Range.end()))
Get the size of a range.
Definition: STLExtras.h:999
auto count(R &&Range, const E &Element) -> typename std::iterator_traits< decltype(adl_begin(Range))>::difference_type
Wrapper function around std::count to count the number of times an element Element occurs in the give...
Definition: STLExtras.h:941