Apache2
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
apr_poll.h
Go to the documentation of this file.
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements. See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef APR_POLL_H
18 #define APR_POLL_H
19 
23 #include "apr.h"
24 #include "apr_pools.h"
25 #include "apr_errno.h"
26 #include "apr_inherit.h"
27 #include "apr_file_io.h"
28 #include "apr_network_io.h"
29 
30 #if APR_HAVE_NETINET_IN_H
31 #include <netinet/in.h>
32 #endif
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif /* __cplusplus */
37 
49 #define APR_POLLIN 0x001
50 #define APR_POLLPRI 0x002
51 #define APR_POLLOUT 0x004
52 #define APR_POLLERR 0x010
53 #define APR_POLLHUP 0x020
54 #define APR_POLLNVAL 0x040
62 #define APR_POLLSET_THREADSAFE 0x001
65 #define APR_POLLSET_NOCOPY 0x002
68 #define APR_POLLSET_WAKEABLE 0x004
71 #define APR_POLLSET_NODEFAULT 0x010
80 typedef enum {
89 
91 typedef enum {
97 
99 typedef union {
105 typedef struct apr_pollfd_t apr_pollfd_t;
106 
108 struct apr_pollfd_t {
114  void *client_data;
115 };
116 
118 /* General-purpose poll API for arbitrarily large numbers of
119  * file descriptors
120  */
124 
156  apr_pool_t *p,
158 
192  apr_uint32_t size,
193  apr_pool_t *p,
194  apr_uint32_t flags,
195  apr_pollset_method_e method);
196 
202 
230  const apr_pollfd_t *descriptor);
231 
251  const apr_pollfd_t *descriptor);
252 
272  apr_interval_time_t timeout,
273  apr_int32_t *num,
274  const apr_pollfd_t **descriptors);
275 
283 
301  apr_int32_t *nsds,
302  apr_interval_time_t timeout);
303 
308 APR_DECLARE(const char *) apr_pollset_method_name(apr_pollset_t *pollset);
309 
314 APR_DECLARE(const char *) apr_poll_method_defname(void);
315 
317 typedef struct apr_pollcb_t apr_pollcb_t;
318 
333 APR_DECLARE(apr_status_t) apr_pollcb_create(apr_pollcb_t **pollcb,
334  apr_uint32_t size,
335  apr_pool_t *p,
336  apr_uint32_t flags);
337 
355 APR_DECLARE(apr_status_t) apr_pollcb_create_ex(apr_pollcb_t **pollcb,
356  apr_uint32_t size,
357  apr_pool_t *p,
358  apr_uint32_t flags,
359  apr_pollset_method_e method);
360 
378 APR_DECLARE(apr_status_t) apr_pollcb_add(apr_pollcb_t *pollcb,
379  apr_pollfd_t *descriptor);
389 APR_DECLARE(apr_status_t) apr_pollcb_remove(apr_pollcb_t *pollcb,
390  apr_pollfd_t *descriptor);
391 
401 typedef apr_status_t (*apr_pollcb_cb_t)(void *baton, apr_pollfd_t *descriptor);
402 
420 APR_DECLARE(apr_status_t) apr_pollcb_poll(apr_pollcb_t *pollcb,
421  apr_interval_time_t timeout,
422  apr_pollcb_cb_t func,
423  void *baton);
424 
431 APR_DECLARE(apr_status_t) apr_pollcb_wakeup(apr_pollcb_t *pollcb);
432 
437 APR_DECLARE(const char *) apr_pollcb_method_name(apr_pollcb_t *pollcb);
438 
441 #ifdef __cplusplus
442 }
443 #endif
444 
445 #endif /* ! APR_POLL_H */
446 
Definition: apr_poll.h:108
apr_status_t apr_pollcb_create_ex(apr_pollcb_t **pollcb, apr_uint32_t size, apr_pool_t *p, apr_uint32_t flags, apr_pollset_method_e method)
Definition: apr_poll.h:101
APR Network library.
Definition: apr_poll.h:92
apr_datatype_e desc_type
Definition: apr_poll.h:119
Definition: apr_arch_file_io.h:107
Definition: apr_poll.h:103
apr_status_t apr_pollset_remove(apr_pollset_t *pollset, const apr_pollfd_t *descriptor)
apr_pollset_method_e
Definition: apr_poll.h:89
Definition: apr_poll.h:91
APR File Handle Inheritance Helpers.
apr_status_t apr_pollset_create_ex(apr_pollset_t **pollset, apr_uint32_t size, apr_pool_t *p, apr_uint32_t flags, apr_pollset_method_e method)
apr_status_t apr_pollcb_create(apr_pollcb_t **pollcb, apr_uint32_t size, apr_pool_t *p, apr_uint32_t flags)
apr_datatype_e
Definition: apr_poll.h:100
APR File I/O Handling.
apr_int64_t apr_interval_time_t
Definition: apr_time.h:55
apr_status_t apr_pollcb_add(apr_pollcb_t *pollcb, apr_pollfd_t *descriptor)
apr_int16_t reqevents
Definition: apr_poll.h:120
apr_status_t(* apr_pollcb_cb_t)(void *baton, apr_pollfd_t *descriptor)
Definition: apr_poll.h:410
dav_buffer apr_size_t size
Definition: mod_dav.h:461
Definition: apr_poll.h:95
APR memory allocation.
apr_pool_t * p
Definition: apr_poll.h:118
apr_status_t apr_pollset_wakeup(apr_pollset_t *pollset)
apr_descriptor desc
Definition: apr_poll.h:122
Definition: apr_poll.h:117
Definition: apr_arch_networkio.h:37
APR Error Codes.
Definition: apr_arch_poll_private.h:148
unsigned int apr_uint32_t
Definition: apr.h:334
APR Platform Definitions.
const char * apr_poll_method_defname(void)
Definition: apr_poll.h:94
const char * apr_pollset_method_name(apr_pollset_t *pollset)
apr_int16_t rtnevents
Definition: apr_poll.h:121
apr_pool_t * p
apr_status_t apr_pollset_destroy(apr_pollset_t *pollset)
apr_status_t apr_poll(apr_pollfd_t *aprset, apr_int32_t numsock, apr_int32_t *nsds, apr_interval_time_t timeout)
short apr_int16_t
Definition: apr.h:330
#define APR_DECLARE(x)
Definition: macros.h:6
Definition: apr_poll.h:102
void * client_data
Definition: apr_poll.h:123
Definition: apr_poll.h:93
apr_status_t apr_pollset_create(apr_pollset_t **pollset, apr_uint32_t size, apr_pool_t *p, apr_uint32_t flags)
Definition: apr_poll.h:90
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
apr_status_t apr_pollcb_remove(apr_pollcb_t *pollcb, apr_pollfd_t *descriptor)
int apr_status_t
Definition: apr_errno.h:44
const char * apr_pollcb_method_name(apr_pollcb_t *pollcb)
apr_status_t apr_pollcb_wakeup(apr_pollcb_t *pollcb)
apr_status_t apr_pollset_add(apr_pollset_t *pollset, const apr_pollfd_t *descriptor)
dav_resource int dav_locktoken dav_response int flags
Definition: mod_dav.h:1350
Definition: apr_poll.h:104
apr_status_t apr_pollset_poll(apr_pollset_t *pollset, apr_interval_time_t timeout, apr_int32_t *num, const apr_pollfd_t **descriptors)
apr_status_t apr_pollcb_poll(apr_pollcb_t *pollcb, apr_interval_time_t timeout, apr_pollcb_cb_t func, void *baton)
Definition: apr_poll.h:96
int apr_int32_t
Definition: apr.h:333
Definition: apr_arch_poll_private.h:119