X-Git-Url: http://git.indexdata.com/?p=yaz-moved-to-github.git;a=blobdiff_plain;f=include%2Fyaz%2Fpoll.h;h=3a11496eb634b45c86bf0a52000e085f130a979a;hp=7edc317a15a9861159ea5a15bb370f00a7a69b75;hb=ee6ab2ee3a9ee1a8c65d7272ec7fba1d886f5af0;hpb=8b4a08403ae705e22b604bffa4577ac403b7de8d diff --git a/include/yaz/poll.h b/include/yaz/poll.h index 7edc317..3a11496 100644 --- a/include/yaz/poll.h +++ b/include/yaz/poll.h @@ -1,5 +1,5 @@ -/* - * Copyright (c) 1995-2007, Index Data +/* This file is part of the YAZ toolkit. + * Copyright (C) 1995-2008 Index Data. * All rights reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -24,7 +24,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $Id: poll.h,v 1.1 2007-11-09 16:46:43 adam Exp $ */ +/* $Id: poll.h,v 1.5 2008-02-21 10:15:03 adam Exp $ */ /** * \file @@ -40,6 +40,7 @@ YAZ_BEGIN_CDECL /** \brief select/poll masks .. timeout is "output" only */ enum yaz_poll_mask { + yaz_poll_none = 0, yaz_poll_read = 1, yaz_poll_write = 2, yaz_poll_except = 4, @@ -58,20 +59,22 @@ struct yaz_poll_fd { void *client_data; }; -/** \brief socket poll wrapper using select - */ -int yaz_poll_select(struct yaz_poll_fd *fds, int num_fds, int timeout); - -/** \brief socket poll using poll */ -int yaz_poll_poll(struct yaz_poll_fd *fds, int num_fds, int timeout); - /** \brief poll wrapper for poll or select - + \param fds array of sockets to be polled + \param num_fds size of fds array (number of sockets) + \param sec number of seconds to wait (-1 for no timeout) + \param nsec nano seconds to wait + \retval -1 error + \retval 0 timeout + \retval >0 event occur on one or more sockets + This functions calls yaz_poll_poll on systems where poll is available and yaz_poll_select where it it unavailable. */ -int yaz_poll(struct yaz_poll_fd *fds, int num_fds, int timeout); +YAZ_EXPORT +int yaz_poll(struct yaz_poll_fd *fds, int num_fds, int sec, int nsec); +#define yaz_poll_add(var,value) var = (enum yaz_poll_mask ) ((int) var | value) YAZ_END_CDECL #endif