FreeTDS API
Main Page
Related Pages
Modules
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
freetds
stream.h
1
/* FreeTDS - Library of routines accessing Sybase and Microsoft databases
2
* Copyright (C) 2013 Frediano Ziglio
3
*
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Library General Public
6
* License as published by the Free Software Foundation; either
7
* version 2 of the License, or (at your option) any later version.
8
*
9
* This library is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* Library General Public License for more details.
13
*
14
* You should have received a copy of the GNU Library General Public
15
* License along with this library; if not, write to the
16
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17
* Boston, MA 02111-1307, USA.
18
*/
19
20
#ifndef _freetds_stream_h_
21
#define _freetds_stream_h_
22
23
#ifndef _tds_h_
24
#error Include tds.h first
25
#endif
26
27
#include <freetds/pushvis.h>
28
30
typedef
struct
tds_input_stream
{
35
int (*
read
)(
struct
tds_input_stream
*stream,
void
*ptr,
size_t
len);
36
}
TDSINSTREAM
;
37
39
typedef
struct
tds_output_stream
{
41
int (*
write
)(
struct
tds_output_stream
*stream,
size_t
len);
50
char
*
buffer
;
51
size_t
buf_len;
52
}
TDSOUTSTREAM
;
53
55
TDSRET
tds_convert_stream
(
TDSSOCKET
* tds,
TDSICONV
* char_conv, TDS_ICONV_DIRECTION direction,
56
TDSINSTREAM
* istream,
TDSOUTSTREAM
*ostream);
58
TDSRET
tds_copy_stream
(
TDSINSTREAM
* istream,
TDSOUTSTREAM
* ostream);
59
60
/* Additional streams */
61
63
typedef
struct
tds_datain_stream
{
64
TDSINSTREAM
stream;
65
size_t
wire_size
;
66
TDSSOCKET
*tds;
67
}
TDSDATAINSTREAM
;
68
69
void
tds_datain_stream_init
(
TDSDATAINSTREAM
* stream,
TDSSOCKET
* tds,
size_t
wire_size);
70
72
typedef
struct
tds_dataout_stream
{
73
TDSOUTSTREAM
stream;
74
TDSSOCKET
*tds;
75
size_t
written;
76
}
TDSDATAOUTSTREAM
;
77
78
void
tds_dataout_stream_init
(
TDSDATAOUTSTREAM
* stream,
TDSSOCKET
* tds);
79
81
typedef
struct
tds_staticin_stream
{
82
TDSINSTREAM
stream;
83
const
char
*buffer;
84
size_t
buf_left;
85
}
TDSSTATICINSTREAM
;
86
87
void
tds_staticin_stream_init
(
TDSSTATICINSTREAM
* stream,
const
void
*ptr,
size_t
len);
88
92
typedef
struct
tds_staticout_stream
{
93
TDSOUTSTREAM
stream;
94
}
TDSSTATICOUTSTREAM
;
95
96
void
tds_staticout_stream_init
(
TDSSTATICOUTSTREAM
* stream,
void
*ptr,
size_t
len);
97
99
typedef
struct
tds_dynamic_stream
{
100
TDSOUTSTREAM
stream;
102
void
**
buf
;
104
size_t
allocated
;
106
size_t
size
;
107
}
TDSDYNAMICSTREAM
;
108
109
TDSRET
tds_dynamic_stream_init
(
TDSDYNAMICSTREAM
* stream,
void
**ptr,
size_t
allocated);
110
111
#include <freetds/popvis.h>
112
113
#endif
114
Generated on Wed Oct 30 2019 20:49:51 for FreeTDS API by
1.8.3.1