Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
opt
cpr
opt
curl
src
tool_sdecls.h
Go to the documentation of this file.
1
#ifndef HEADER_CURL_TOOL_SDECLS_H
2
#define HEADER_CURL_TOOL_SDECLS_H
3
/***************************************************************************
4
* _ _ ____ _
5
* Project ___| | | | _ \| |
6
* / __| | | | |_) | |
7
* | (__| |_| | _ <| |___
8
* \___|\___/|_| \_\_____|
9
*
10
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
11
*
12
* This software is licensed as described in the file COPYING, which
13
* you should have received as part of this distribution. The terms
14
* are also available at https://curl.haxx.se/docs/copyright.html.
15
*
16
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
17
* copies of the Software, and permit persons to whom the Software is
18
* furnished to do so, under the terms of the COPYING file.
19
*
20
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
21
* KIND, either express or implied.
22
*
23
***************************************************************************/
24
#include "
tool_setup.h
"
25
#ifdef USE_METALINK
26
# include <metalink/metalink.h>
27
#endif
/* USE_METALINK */
28
29
/*
30
* OutStruct variables keep track of information relative to curl's
31
* output writing, which may take place to a standard stream or a file.
32
*
33
* 'filename' member is either a pointer to a file name string or NULL
34
* when dealing with a standard stream.
35
*
36
* 'alloc_filename' member is TRUE when string pointed by 'filename' has been
37
* dynamically allocated and 'belongs' to this OutStruct, otherwise FALSE.
38
*
39
* 'is_cd_filename' member is TRUE when string pointed by 'filename' has been
40
* set using a server-specified Content-Disposition filename, otherwise FALSE.
41
*
42
* 's_isreg' member is TRUE when output goes to a regular file, this also
43
* implies that output is 'seekable' and 'appendable' and also that member
44
* 'filename' points to file name's string. For any standard stream member
45
* 's_isreg' will be FALSE.
46
*
47
* 'fopened' member is TRUE when output goes to a regular file and it
48
* has been fopen'ed, requiring it to be closed later on. In any other
49
* case this is FALSE.
50
*
51
* 'stream' member is a pointer to a stream controlling object as returned
52
* from a 'fopen' call or a standard stream.
53
*
54
* 'config' member is a pointer to associated 'OperationConfig' struct.
55
*
56
* 'bytes' member represents amount written so far.
57
*
58
* 'init' member holds original file size or offset at which truncation is
59
* taking place. Always zero unless appending to a non-empty regular file.
60
*
61
* 'metalink_parser' member is a pointer to Metalink XML parser
62
* context.
63
*/
64
65
struct
OutStruct
{
66
char
*
filename
;
67
bool
alloc_filename
;
68
bool
is_cd_filename
;
69
bool
s_isreg
;
70
bool
fopened
;
71
FILE *
stream
;
72
struct
OperationConfig
*
config
;
73
curl_off_t
bytes
;
74
curl_off_t
init
;
75
#ifdef USE_METALINK
76
metalink_parser_context_t *metalink_parser;
77
#endif
/* USE_METALINK */
78
};
79
80
81
/*
82
* InStruct variables keep track of information relative to curl's
83
* input reading, which may take place from stdin or from some file.
84
*
85
* 'fd' member is either 'stdin' file descriptor number STDIN_FILENO
86
* or a file descriptor as returned from an 'open' call for some file.
87
*
88
* 'config' member is a pointer to associated 'OperationConfig' struct.
89
*/
90
91
struct
InStruct
{
92
int
fd
;
93
struct
OperationConfig
*
config
;
94
};
95
96
97
/*
98
* A linked list of these 'getout' nodes contain URL's to fetch,
99
* as well as information relative to where URL contents should
100
* be stored or which file should be uploaded.
101
*/
102
103
struct
getout
{
104
struct
getout
*
next
;
/* next one */
105
char
*
url
;
/* the URL we deal with */
106
char
*
outfile
;
/* where to store the output */
107
char
*
infile
;
/* file to upload, if GETOUT_UPLOAD is set */
108
int
flags
;
/* options - composed of GETOUT_* bits */
109
};
110
111
#define GETOUT_OUTFILE (1<<0)
/* set when outfile is deemed done */
112
#define GETOUT_URL (1<<1)
/* set when URL is deemed done */
113
#define GETOUT_USEREMOTE (1<<2)
/* use remote file name locally */
114
#define GETOUT_UPLOAD (1<<3)
/* if set, -T has been used */
115
#define GETOUT_NOUPLOAD (1<<4)
/* if set, -T "" has been used */
116
#define GETOUT_METALINK (1<<5)
/* set when Metalink download */
117
118
/*
119
* 'trace' enumeration represents curl's output look'n feel possibilities.
120
*/
121
122
typedef
enum
{
123
TRACE_NONE
,
/* no trace/verbose output at all */
124
TRACE_BIN
,
/* tcpdump inspired look */
125
TRACE_ASCII
,
/* like *BIN but without the hex output */
126
TRACE_PLAIN
/* -v/--verbose type */
127
}
trace
;
128
129
130
/*
131
* 'HttpReq' enumeration represents HTTP request types.
132
*/
133
134
typedef
enum
{
135
HTTPREQ_UNSPEC
,
/* first in list */
136
HTTPREQ_GET
,
137
HTTPREQ_HEAD
,
138
HTTPREQ_MIMEPOST
,
139
HTTPREQ_SIMPLEPOST
140
}
HttpReq
;
141
142
143
/*
144
* Complete struct declarations which have OperationConfig struct members,
145
* just in case this header is directly included in some source file.
146
*/
147
148
#include "
tool_cfgable.h
"
149
150
#endif
/* HEADER_CURL_TOOL_SDECLS_H */
151
getout::next
struct getout * next
Definition:
tool_sdecls.h:104
tool_cfgable.h
TRACE_PLAIN
Definition:
tool_sdecls.h:126
HttpReq
HttpReq
Definition:
tool_sdecls.h:134
InStruct::config
struct OperationConfig * config
Definition:
tool_sdecls.h:93
OutStruct::filename
char * filename
Definition:
tool_sdecls.h:66
getout::infile
char * infile
Definition:
tool_sdecls.h:107
OutStruct::init
curl_off_t init
Definition:
tool_sdecls.h:74
trace
trace
Definition:
tool_sdecls.h:122
OutStruct
Definition:
tool_sdecls.h:65
HTTPREQ_HEAD
Definition:
tool_sdecls.h:137
InStruct::fd
int fd
Definition:
tool_sdecls.h:92
HTTPREQ_GET
Definition:
tool_sdecls.h:136
OutStruct::s_isreg
bool s_isreg
Definition:
tool_sdecls.h:69
TRACE_ASCII
Definition:
tool_sdecls.h:125
getout::outfile
char * outfile
Definition:
tool_sdecls.h:106
curl_off_t
CURL_TYPEOF_CURL_OFF_T curl_off_t
Definition:
system.h:420
OutStruct::config
struct OperationConfig * config
Definition:
tool_sdecls.h:72
TRACE_BIN
Definition:
tool_sdecls.h:124
OutStruct::fopened
bool fopened
Definition:
tool_sdecls.h:70
getout::flags
int flags
Definition:
tool_sdecls.h:108
getout::url
char * url
Definition:
tool_sdecls.h:105
OutStruct::stream
FILE * stream
Definition:
tool_sdecls.h:71
OutStruct::bytes
curl_off_t bytes
Definition:
tool_sdecls.h:73
OperationConfig
Definition:
tool_cfgable.h:38
HTTPREQ_SIMPLEPOST
Definition:
tool_sdecls.h:139
InStruct
Definition:
tool_sdecls.h:91
TRACE_NONE
Definition:
tool_sdecls.h:123
HTTPREQ_MIMEPOST
Definition:
tool_sdecls.h:138
HTTPREQ_UNSPEC
Definition:
tool_sdecls.h:135
OutStruct::is_cd_filename
bool is_cd_filename
Definition:
tool_sdecls.h:68
OutStruct::alloc_filename
bool alloc_filename
Definition:
tool_sdecls.h:67
tool_setup.h
getout
Definition:
tool_sdecls.h:103
rc_tagdetect_client
Author(s): Monika Florek-Jasinska
, Raphael Schaller
autogenerated on Sat Feb 13 2021 03:42:16