GNU libmicrohttpd  0.9.29
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
io.h
Go to the documentation of this file.
1 /*
2  This file is part of libmicrospdy
3  Copyright (C) 2013 Andrey Uzunov
4 
5  This program is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18 
25 #ifndef IO_H
26 #define IO_H
27 
28 #include "platform.h"
29 #include "io_openssl.h"
30 #include "io_raw.h"
31 
32 
37 {
42 
47 
55 };
56 
57 
62 typedef void
64 
65 
71 typedef void
73 
74 
83 typedef int
84 (*SPDYF_IOInit) (struct SPDY_Daemon *daemon);
85 
86 
93 typedef void
94 (*SPDYF_IODeinit) (struct SPDY_Daemon *daemon);
95 
96 
104 typedef int
105 (*SPDYF_IONewSession) (struct SPDY_Session *session);
106 
107 
114 typedef void
115 (*SPDYF_IOCloseSession) (struct SPDY_Session *session);
116 
117 
129 typedef int
130 (*SPDYF_IORecv) (struct SPDY_Session *session,
131  void * buffer,
132  size_t size);
133 
134 
147 typedef int
148 (*SPDYF_IOSend) (struct SPDY_Session *session,
149  const void * buffer,
150  size_t size);
151 
152 
161 typedef int
162 (*SPDYF_IOIsPending) (struct SPDY_Session *session);
163 
164 
173 typedef int
174 (*SPDYF_IOBeforeWrite) (struct SPDY_Session *session);
175 
176 
186 typedef int
187 (*SPDYF_IOAfterWrite) (struct SPDY_Session *session,
188  int was_written);
189 
190 
199 int
201  enum SPDY_IO_SUBSYSTEM io_subsystem);
202 
203 
212 int
213 SPDYF_io_set_session(struct SPDY_Session *session,
214  enum SPDY_IO_SUBSYSTEM io_subsystem);
215 
216 #endif
int(* SPDYF_IOBeforeWrite)(struct SPDY_Session *session)
Definition: io.h:174
struct SPDY_Daemon * daemon
Definition: structures.h:633
int(* SPDYF_IORecv)(struct SPDY_Session *session, void *buffer, size_t size)
Definition: io.h:130
int(* SPDYF_IONewSession)(struct SPDY_Session *session)
Definition: io.h:105
void(* SPDYF_IOGlobalDeinit)()
Definition: io.h:72
TLS handling. openssl with NPN is used, but as long as the functions conform to this interface file...
platform-specific includes for libmicrohttpd
void(* SPDYF_IOCloseSession)(struct SPDY_Session *session)
Definition: io.h:115
int SPDYF_io_set_session(struct SPDY_Session *session, enum SPDY_IO_SUBSYSTEM io_subsystem)
Definition: io.c:58
SPDY_IO_ERROR
Definition: io.h:36
void(* SPDYF_IODeinit)(struct SPDY_Daemon *daemon)
Definition: io.h:94
void(* SPDYF_IOGlobalInit)()
Definition: io.h:63
int SPDYF_io_set_daemon(struct SPDY_Daemon *daemon, enum SPDY_IO_SUBSYSTEM io_subsystem)
Definition: io.c:32
int(* SPDYF_IOInit)(struct SPDY_Daemon *daemon)
Definition: io.h:84
IO for SPDY without TLS.
int(* SPDYF_IOAfterWrite)(struct SPDY_Session *session, int was_written)
Definition: io.h:187
int(* SPDYF_IOIsPending)(struct SPDY_Session *session)
Definition: io.h:162
int(* SPDYF_IOSend)(struct SPDY_Session *session, const void *buffer, size_t size)
Definition: io.h:148
SPDY_IO_SUBSYSTEM
Definition: microspdy.h:318