proton
0
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
proton-c
include
proton
io.h
Go to the documentation of this file.
1
#ifndef PROTON_IO_H
2
#define PROTON_IO_H 1
3
4
/*
5
*
6
* Licensed to the Apache Software Foundation (ASF) under one
7
* or more contributor license agreements. See the NOTICE file
8
* distributed with this work for additional information
9
* regarding copyright ownership. The ASF licenses this file
10
* to you under the Apache License, Version 2.0 (the
11
* "License"); you may not use this file except in compliance
12
* with the License. You may obtain a copy of the License at
13
*
14
* http://www.apache.org/licenses/LICENSE-2.0
15
*
16
* Unless required by applicable law or agreed to in writing,
17
* software distributed under the License is distributed on an
18
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19
* KIND, either express or implied. See the License for the
20
* specific language governing permissions and limitations
21
* under the License.
22
*
23
*/
24
25
#include <
proton/import_export.h
>
26
#include <
proton/error.h
>
27
#include <sys/types.h>
28
#include <
proton/type_compat.h
>
29
30
#ifdef __cplusplus
31
extern
"C"
{
32
#endif
33
34
#if defined(_WIN32) && ! defined(__CYGWIN__)
35
#ifdef _WIN64
36
typedef
unsigned
__int64
pn_socket_t
;
37
#else
38
typedef
unsigned
int
pn_socket_t
;
39
#endif
40
#define PN_INVALID_SOCKET (pn_socket_t)(~0)
41
#else
42
typedef
int
pn_socket_t
;
43
#define PN_INVALID_SOCKET (-1)
44
#endif
45
46
typedef
struct
pn_io_t
pn_io_t
;
47
48
PN_EXTERN
pn_io_t
*
pn_io
(
void
);
49
PN_EXTERN
void
pn_io_free
(
pn_io_t
*io);
50
PN_EXTERN
pn_error_t
*
pn_io_error
(
pn_io_t
*io);
51
PN_EXTERN
pn_socket_t
pn_connect
(
pn_io_t
*io,
const
char
*host,
const
char
*port);
52
PN_EXTERN
pn_socket_t
pn_listen
(
pn_io_t
*io,
const
char
*host,
const
char
*port);
53
PN_EXTERN
pn_socket_t
pn_accept
(
pn_io_t
*io, pn_socket_t socket,
char
*name,
size_t
size);
54
PN_EXTERN
void
pn_close
(
pn_io_t
*io, pn_socket_t socket);
55
PN_EXTERN
ssize_t
pn_send
(
pn_io_t
*io, pn_socket_t socket,
const
void
*buf,
size_t
size);
56
PN_EXTERN
ssize_t
pn_recv
(
pn_io_t
*io, pn_socket_t socket,
void
*buf,
size_t
size);
57
PN_EXTERN
int
pn_pipe
(
pn_io_t
*io, pn_socket_t *dest);
58
PN_EXTERN
ssize_t
pn_read
(
pn_io_t
*io, pn_socket_t socket,
void
*buf,
size_t
size);
59
PN_EXTERN
ssize_t
pn_write
(
pn_io_t
*io, pn_socket_t socket,
const
void
*buf,
size_t
size);
60
PN_EXTERN
bool
pn_wouldblock
(
pn_io_t
*io);
61
62
#ifdef __cplusplus
63
}
64
#endif
65
66
#endif
/* io.h */
Generated on Mon Jun 2 2014 22:59:05 for proton by
1.8.1.2