libguac
0.7.0
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
socket.h
Go to the documentation of this file.
1
2
/* ***** BEGIN LICENSE BLOCK *****
3
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
*
5
* The contents of this file are subject to the Mozilla Public License Version
6
* 1.1 (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
* http://www.mozilla.org/MPL/
9
*
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
13
* License.
14
*
15
* The Original Code is libguac.
16
*
17
* The Initial Developer of the Original Code is
18
* Michael Jumper.
19
* Portions created by the Initial Developer are Copyright (C) 2010
20
* the Initial Developer. All Rights Reserved.
21
*
22
* Contributor(s):
23
*
24
* Alternatively, the contents of this file may be used under the terms of
25
* either the GNU General Public License Version 2 or later (the "GPL"), or
26
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
27
* in which case the provisions of the GPL or the LGPL are applicable instead
28
* of those above. If you wish to allow use of your version of this file only
29
* under the terms of either the GPL or the LGPL, and not to allow others to
30
* use your version of this file under the terms of the MPL, indicate your
31
* decision by deleting the provisions above and replace them with the notice
32
* and other provisions required by the GPL or the LGPL. If you do not delete
33
* the provisions above, a recipient may use your version of this file under
34
* the terms of any one of the MPL, the GPL or the LGPL.
35
*
36
* ***** END LICENSE BLOCK ***** */
37
38
#ifndef _GUAC_SOCKET_H
39
#define _GUAC_SOCKET_H
40
41
#include <stdint.h>
42
#include <unistd.h>
43
50
typedef
struct
guac_socket
guac_socket
;
51
62
typedef
ssize_t
guac_socket_read_handler
(
guac_socket
* socket,
63
void
* buf,
size_t
count);
64
75
typedef
ssize_t
guac_socket_write_handler
(
guac_socket
* socket,
76
void
* buf,
size_t
count);
77
89
typedef
int
guac_socket_select_handler
(
guac_socket
* socket,
int
usec_timeout);
90
99
typedef
int
guac_socket_free_handler
(
guac_socket
* socket);
100
105
struct
guac_socket
{
106
110
void
*
data
;
111
115
guac_socket_read_handler
*
read_handler
;
116
122
guac_socket_write_handler
*
write_handler
;
123
128
guac_socket_select_handler
*
select_handler
;
129
133
guac_socket_free_handler
*
free_handler
;
134
138
int
__ready;
139
144
int
__ready_buf[3];
145
149
int
__written;
150
155
char
__out_buf[8192];
156
160
int
__instructionbuf_parse_start;
161
165
int
__instructionbuf_size;
166
170
int
__instructionbuf_used_length;
171
177
char
* __instructionbuf;
178
182
int
__instructionbuf_elementc;
183
188
char
* __instructionbuf_elementv[64];
189
190
};
191
199
guac_socket
*
guac_socket_alloc
();
200
206
void
guac_socket_free
(
guac_socket
* socket);
207
220
guac_socket
*
guac_socket_open
(
int
fd);
221
236
guac_socket
*
guac_socket_nest
(
guac_socket
* parent,
int
index);
237
250
ssize_t
guac_socket_write_int
(
guac_socket
* socket, int64_t i);
251
266
ssize_t
guac_socket_write_string
(
guac_socket
* socket,
const
char
* str);
267
284
ssize_t
guac_socket_write_base64
(
guac_socket
* socket,
const
void
* buf,
size_t
count);
285
298
ssize_t
guac_socket_write
(
guac_socket
* socket,
const
void
* buf,
size_t
count);
299
313
ssize_t
guac_socket_read
(
guac_socket
* socket,
void
* buf,
size_t
count);
314
324
ssize_t
guac_socket_flush_base64
(
guac_socket
* socket);
325
335
ssize_t
guac_socket_flush
(
guac_socket
* socket);
336
337
354
int
guac_socket_select
(
guac_socket
* socket,
int
usec_timeout);
355
356
#endif
357
Generated on Tue Jul 2 2013 15:14:43 for libguac by
1.8.3.1