/* gpoll.h - poll(2) support * Copyright (C) 2008 Red Hat, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, see <http://www.gnu.org/licenses/>. */ #ifndef __G_POLL_H__ #define __G_POLL_H__ #if !defined (__GLIB_H_INSIDE__) && !defined (__G_MAIN_H__) && !defined (GLIB_COMPILATION) #error "Only <glib.h> can be included directly." #endif #include <glibconfig.h> #include <glib/gtypes.h> G_BEGIN_DECLS /* Any definitions using GPollFD or GPollFunc are primarily * for Unix and not guaranteed to be the compatible on all * operating systems on which GLib runs. Right now, the * GLib does use these functions on Win32 as well, but interprets * them in a fairly different way than on Unix. If you use * these definitions, you are should be prepared to recode * for different operating systems. * * Note that on systems with a working poll(2), that function is used * in place of g_poll(). Thus g_poll() must have the same signature as * poll(), meaning GPollFD must have the same layout as struct pollfd. * * On Win32, the fd in a GPollFD should be Win32 HANDLE (*not* a file * descriptor as provided by the C runtime) that can be used by * MsgWaitForMultipleObjects. This does *not* include file handles * from CreateFile, SOCKETs, nor pipe handles. (But you can use * WSAEventSelect to signal events when a SOCKET is readable). * * On Win32, fd can also be the special value G_WIN32_MSG_HANDLE to * indicate polling for messages. * * But note that G_WIN32_MSG_HANDLE GPollFDs should not be used by GDK * (GTK) programs, as GDK itself wants to read messages and convert them * to GDK events. * * So, unless you really know what you are doing, it's best not to try * to use the main loop polling stuff for your own needs on * Windows. */ typedef struct _GPollFD GPollFD; /** * GPollFunc: * @ufds: an array of #GPollFD elements * @nfsd: the number of elements in @ufds * @timeout_: the maximum time to wait for an event of the file descriptors. * A negative value indicates an infinite timeout. * * Specifies the type of function passed to g_main_context_set_poll_func(). * The semantics of the function should match those of the poll() system call. * * Returns: the number of #GPollFD elements which have events or errors * reported, or -1 if an error occurred. */ typedef gint (*GPollFunc) (GPollFD *ufds, guint nfsd, gint timeout_); /** * GPollFD: * @fd: the file descriptor to poll (or a HANDLE on Win32) * @events: a bitwise combination from #GIOCondition, specifying which * events should be polled for. Typically for reading from a file * descriptor you would use %G_IO_IN | %G_IO_HUP | %G_IO_ERR, and * for writing you would use %G_IO_OUT | %G_IO_ERR. * @revents: a bitwise combination of flags from #GIOCondition, returned * from the poll() function to indicate which events occurred. * * Represents a file descriptor, which events to poll for, and which events * occurred. */ struct _GPollFD { #if defined (G_OS_WIN32) && GLIB_SIZEOF_VOID_P == 8 #ifndef __GTK_DOC_IGNORE__ gint64 fd; #endif #else gint fd; #endif gushort events; gushort revents; }; /** * G_POLLFD_FORMAT: * * A format specifier that can be used in printf()-style format strings * when printing the @fd member of a #GPollFD. */ /* defined in glibconfig.h */ GLIB_AVAILABLE_IN_ALL gint g_poll (GPollFD *fds, guint nfds, gint timeout); G_END_DECLS #endif /* __G_POLL_H__ */
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
deprecated | Folder | 0755 |
|
|
galloca.h | File | 3.82 KB | 0644 |
|
garray.h | File | 9.3 KB | 0644 |
|
gasyncqueue.h | File | 5.53 KB | 0644 |
|
gatomic.h | File | 14.75 KB | 0644 |
|
gbacktrace.h | File | 2.51 KB | 0644 |
|
gbase64.h | File | 2.27 KB | 0644 |
|
gbitlock.h | File | 2.83 KB | 0644 |
|
gbookmarkfile.h | File | 9.37 KB | 0644 |
|
gbytes.h | File | 3.26 KB | 0644 |
|
gcharset.h | File | 1.3 KB | 0644 |
|
gchecksum.h | File | 3.77 KB | 0644 |
|
gconvert.h | File | 5.78 KB | 0644 |
|
gdataset.h | File | 6.1 KB | 0644 |
|
gdate.h | File | 11.47 KB | 0644 |
|
gdatetime.h | File | 11.96 KB | 0644 |
|
gdir.h | File | 1.6 KB | 0644 |
|
genviron.h | File | 2.31 KB | 0644 |
|
gerror.h | File | 3.85 KB | 0644 |
|
gfileutils.h | File | 5.51 KB | 0644 |
|
ggettext.h | File | 2.37 KB | 0644 |
|
ghash.h | File | 7.37 KB | 0644 |
|
ghmac.h | File | 3.39 KB | 0644 |
|
ghook.h | File | 6.21 KB | 0644 |
|
ghostutils.h | File | 1.42 KB | 0644 |
|
gi18n-lib.h | File | 1.34 KB | 0644 |
|
gi18n.h | File | 1.14 KB | 0644 |
|
giochannel.h | File | 13.63 KB | 0644 |
|
gkeyfile.h | File | 14.82 KB | 0644 |
|
glib-autocleanups.h | File | 4.04 KB | 0644 |
|
glist.h | File | 5.69 KB | 0644 |
|
gmacros.h | File | 18.21 KB | 0644 |
|
gmain.h | File | 23.55 KB | 0644 |
|
gmappedfile.h | File | 1.94 KB | 0644 |
|
gmarkup.h | File | 10.62 KB | 0644 |
|
gmem.h | File | 13.01 KB | 0644 |
|
gmessages.h | File | 24.81 KB | 0644 |
|
gnode.h | File | 8.91 KB | 0644 |
|
goption.h | File | 15.65 KB | 0644 |
|
gpattern.h | File | 1.74 KB | 0644 |
|
gpoll.h | File | 4.03 KB | 0644 |
|
gprimes.h | File | 1.65 KB | 0644 |
|
gprintf.h | File | 1.94 KB | 0644 |
|
gqsort.h | File | 1.46 KB | 0644 |
|
gquark.h | File | 2.63 KB | 0644 |
|
gqueue.h | File | 6.97 KB | 0644 |
|
grand.h | File | 3.11 KB | 0644 |
|
gregex.h | File | 27.44 KB | 0644 |
|
gscanner.h | File | 8.47 KB | 0644 |
|
gsequence.h | File | 8.6 KB | 0644 |
|
gshell.h | File | 1.71 KB | 0644 |
|
gslice.h | File | 3.8 KB | 0644 |
|
gslist.h | File | 5.46 KB | 0644 |
|
gspawn.h | File | 10.77 KB | 0644 |
|
gstdio.h | File | 4.73 KB | 0644 |
|
gstrfuncs.h | File | 12.76 KB | 0644 |
|
gstring.h | File | 7.79 KB | 0644 |
|
gstringchunk.h | File | 2.08 KB | 0644 |
|
gtestutils.h | File | 23.64 KB | 0644 |
|
gthread.h | File | 11.34 KB | 0644 |
|
gthreadpool.h | File | 3.73 KB | 0644 |
|
gtimer.h | File | 2.31 KB | 0644 |
|
gtimezone.h | File | 3.41 KB | 0644 |
|
gtrashstack.h | File | 1.74 KB | 0644 |
|
gtree.h | File | 4.1 KB | 0644 |
|
gtypes.h | File | 18.98 KB | 0644 |
|
gunicode.h | File | 38.2 KB | 0644 |
|
gurifuncs.h | File | 2.65 KB | 0644 |
|
gutils.h | File | 11.01 KB | 0644 |
|
guuid.h | File | 1.26 KB | 0644 |
|
gvariant.h | File | 28.83 KB | 0644 |
|
gvarianttype.h | File | 12.93 KB | 0644 |
|
gversion.h | File | 1.93 KB | 0644 |
|
gversionmacros.h | File | 16.33 KB | 0644 |
|
gwin32.h | File | 4.56 KB | 0644 |
|