YAZ
5.34.0
src
yaz
poll.h
Go to the documentation of this file.
1
/* This file is part of the YAZ toolkit.
2
* Copyright (C) Index Data.
3
* All rights reserved.
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are met:
6
*
7
* * Redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer.
9
* * Redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution.
12
* * Neither the name of Index Data nor the names of its contributors
13
* may be used to endorse or promote products derived from this
14
* software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY
17
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
* DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY
20
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*/
27
32
#ifndef YAZ_POLL_H
33
#define YAZ_POLL_H
34
35
#include <stddef.h>
36
#include <
yaz/yconfig.h
>
37
38
YAZ_BEGIN_CDECL
39
41
enum
yaz_poll_mask
{
42
yaz_poll_none
= 0,
43
yaz_poll_read
= 1,
44
yaz_poll_write
= 2,
45
yaz_poll_except
= 4,
46
yaz_poll_timeout
= 8,
47
};
48
50
struct
yaz_poll_fd
{
52
enum
yaz_poll_mask
input_mask
;
54
enum
yaz_poll_mask
output_mask
;
56
int
fd
;
58
void
*
client_data
;
59
};
60
73
YAZ_EXPORT
74
int
yaz_poll
(
struct
yaz_poll_fd
*fds,
int
num_fds,
int
sec,
int
nsec);
75
76
#define yaz_poll_add(var,value) var = (enum yaz_poll_mask ) ((int) var | value)
77
YAZ_END_CDECL
78
79
#endif
80
/*
81
* Local variables:
82
* c-basic-offset: 4
83
* c-file-style: "Stroustrup"
84
* indent-tabs-mode: nil
85
* End:
86
* vim: shiftwidth=4 tabstop=8 expandtab
87
*/
88
yaz_poll
int yaz_poll(struct yaz_poll_fd *fds, int num_fds, int sec, int nsec)
poll wrapper for poll or select
Definition:
poll.c:161
yaz_poll_mask
yaz_poll_mask
select/poll masks .. timeout is "output" only
Definition:
poll.h:41
yaz_poll_read
@ yaz_poll_read
Definition:
poll.h:43
yaz_poll_except
@ yaz_poll_except
Definition:
poll.h:45
yaz_poll_none
@ yaz_poll_none
Definition:
poll.h:42
yaz_poll_write
@ yaz_poll_write
Definition:
poll.h:44
yaz_poll_timeout
@ yaz_poll_timeout
Definition:
poll.h:46
yaz_poll_fd
select/poll fd info
Definition:
poll.h:50
yaz_poll_fd::output_mask
enum yaz_poll_mask output_mask
Definition:
poll.h:54
yaz_poll_fd::input_mask
enum yaz_poll_mask input_mask
Definition:
poll.h:52
yaz_poll_fd::client_data
void * client_data
Definition:
poll.h:58
yaz_poll_fd::fd
int fd
Definition:
poll.h:56
yconfig.h
Header with fundamental macros.
YAZ_BEGIN_CDECL
#define YAZ_BEGIN_CDECL
Definition:
yconfig.h:56
YAZ_END_CDECL
#define YAZ_END_CDECL
Definition:
yconfig.h:57
Generated by
1.9.1