X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=glib%2Fgpoll.h;h=f28e3c50ebbd852056fd7eda3a1da25c5433379d;hb=35eaf037bdfca985abf5d349e7355f1d2ed9c77b;hp=dccd832a24c403c437ccccfa5c761b3bac14da53;hpb=ac68024ec1a476871111522e5ce48945b18ce9f7;p=platform%2Fupstream%2Fglib.git diff --git a/glib/gpoll.h b/glib/gpoll.h index dccd832..f28e3c5 100644 --- a/glib/gpoll.h +++ b/glib/gpoll.h @@ -12,18 +12,16 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library; if not, see . */ -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - #ifndef __G_POLL_H__ #define __G_POLL_H__ +#if !defined (__GLIB_H_INSIDE__) && !defined (__G_MAIN_H__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + #include G_BEGIN_DECLS @@ -40,7 +38,6 @@ G_BEGIN_DECLS * 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 @@ -59,14 +56,43 @@ G_BEGIN_DECLS * Windows. */ typedef struct _GPollFD GPollFD; -typedef gint (*GPollFunc) (GPollFD *ufds, - guint nfsd, - gint timeout_); +/** + * 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 @@ -74,6 +100,12 @@ struct _GPollFD 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. + */ #ifdef G_OS_WIN32 #if GLIB_SIZEOF_VOID_P == 8 #define G_POLLFD_FORMAT "%#I64x" @@ -84,9 +116,11 @@ struct _GPollFD #define G_POLLFD_FORMAT "%d" #endif -gint g_poll (GPollFD *fds, - guint nfds, - gint timeout); +GLIB_AVAILABLE_IN_ALL +gint +g_poll (GPollFD *fds, + guint nfds, + gint timeout); G_END_DECLS