ROOT
6.18/05
Reference Guide
proof
xrdinc
XrdClient
XrdClientConst.hh
Go to the documentation of this file.
1
#ifndef _XRC_CONST_H
2
#define _XRC_CONST_H
3
/******************************************************************************/
4
/* */
5
/* X r d C l i e n t C o n s t . h h */
6
/* */
7
/* Author: Fabrizio Furano (INFN Padova, 2004) */
8
/* Adapted from TXNetFile (root.cern.ch) originally done by */
9
/* Alvise Dorigo, Fabrizio Furano */
10
/* INFN Padova, 2003 */
11
/* */
12
/* This file is part of the XRootD software suite. */
13
/* */
14
/* XRootD is free software: you can redistribute it and/or modify it under */
15
/* the terms of the GNU Lesser General Public License as published by the */
16
/* Free Software Foundation, either version 3 of the License, or (at your */
17
/* option) any later version. */
18
/* */
19
/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
20
/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
21
/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
22
/* License for more details. */
23
/* */
24
/* You should have received a copy of the GNU Lesser General Public License */
25
/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
26
/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
27
/* */
28
/* The copyright holder's institutional names and contributor's names may not */
29
/* be used to endorse or promote products derived from this software without */
30
/* specific prior written permission of the institution or contributor. */
31
/******************************************************************************/
32
33
//////////////////////////////////////////////////////////////////////////
34
// //
35
// Constants for Xrd //
36
// //
37
//////////////////////////////////////////////////////////////////////////
38
39
#define DFLT_CONNECTTIMEOUT 120
40
#define NAME_CONNECTTIMEOUT (char *)"ConnectTimeout"
41
42
#define DFLT_REQUESTTIMEOUT 300
43
#define NAME_REQUESTTIMEOUT (char *)"RequestTimeout"
44
45
#define DFLT_MAXREDIRECTCOUNT 16
46
#define NAME_MAXREDIRECTCOUNT (char *)"MaxRedirectcount"
47
48
#define DFLT_DEBUG 0
49
#define NAME_DEBUG (char *)"DebugLevel"
50
51
#define DFLT_RECONNECTWAIT 5
52
#define NAME_RECONNECTWAIT (char *)"ReconnectWait"
53
54
#define DFLT_REDIRCNTTIMEOUT 36000
55
#define NAME_REDIRCNTTIMEOUT (char *)"RedirCntTimeout"
56
57
#define DFLT_FIRSTCONNECTMAXCNT 8
58
#define NAME_FIRSTCONNECTMAXCNT (char *)"FirstConnectMaxCnt"
59
60
#define DFLT_TRANSACTIONTIMEOUT 28800
61
#define NAME_TRANSACTIONTIMEOUT (char *)"TransactionTimeout"
62
63
64
#define TXSOCK_ERR_TIMEOUT -1
65
#define TXSOCK_ERR -2
66
#define TXSOCK_ERR_INTERRUPT -3
67
68
// the default number of parallel streams PER physical connection
69
// 0 means that the multistream support is disabled
70
#define DFLT_MULTISTREAMCNT 0
71
#define NAME_MULTISTREAMCNT (char *)"ParStreamsPerPhyConn"
72
73
// The minimum size to use to split big single requests
74
// through multiple streams
75
#define DFLT_MULTISTREAMSPLITSIZE (4*1024*1024)
76
77
// keep/dont-keep the socket open (required by optimized rootd fallback)
78
#define DFLT_KEEPSOCKOPENIFNOTXRD 0
79
#define NAME_KEEPSOCKOPENIFNOTXRD (char *)"KeepSockOpenIfNotXrd"
80
81
// Printable version
82
#define XRD_CLIENT_VERSION (char *)"kXR_ver002+kXR_asyncap"
83
84
// Version and capabilities sent to the server
85
#define XRD_CLIENT_CURRENTVER (kXR_ver002)
86
#define XRD_CLIENT_CAPVER ((kXR_char)kXR_asyncap | XRD_CLIENT_CURRENTVER)
87
88
// Defaults for ReadAhead and Cache
89
#define DFLT_READCACHESIZE 0
90
#define NAME_READCACHESIZE (char *)"ReadCacheSize"
91
92
// 0 = LRU
93
// 1 = Remove least offest
94
#define DFLT_READCACHEBLKREMPOLICY 0
95
#define NAME_READCACHEBLKREMPOLICY (char *)"ReadCacheBlkRemPolicy"
96
97
#define DFLT_READAHEADSIZE (0)
98
#define NAME_READAHEADSIZE (char *)"ReadAheadSize"
99
100
// Align all the read requests to multiples of a number
101
#define DFLT_READTRIMBLKSZ (0)
102
#define NAME_READTRIMBLKSZ (char *)"ReadTrimBlockSize"
103
104
// The default read ahead strategy to use
105
#define DFLT_READAHEADSTRATEGY (1)
// This is the sequential readahead
106
#define NAME_READAHEADSTRATEGY (char *)"ReadAheadStrategy"
107
108
109
// To be used in copy-like apps when the data is to be accessed only once
110
// ... to reduce additional cache overhead
111
#define DFLT_REMUSEDCACHEBLKS 0
112
#define NAME_REMUSEDCACHEBLKS (char *)"RemoveUsedCacheBlocks"
113
114
// When writing async, purge immediately the written blocks from the cache
115
#define DFLT_PURGEWRITTENBLOCKS 0
116
#define NAME_PURGEWRITTENBLOCKS (char *)"PurgeWrittenBlocks"
117
118
#define NAME_REDIRDOMAINALLOW_RE (char *)"RedirDomainAllowRE"
119
#define NAME_REDIRDOMAINDENY_RE (char *)"RedirDomainDenyRE"
120
#define NAME_CONNECTDOMAINALLOW_RE (char *)"ConnectDomainAllowRE"
121
#define NAME_CONNECTDOMAINDENY_RE (char *)"ConnectDomainDenyRE"
122
123
#define PROTO (char *)"root"
124
125
// The max number of threads spawned to do parallel opens
126
// Note for dummies: this is not the max number of parallel opens
127
#define DFLT_MAXCONCURRENTOPENS 100
128
129
#define READV_MAXCHUNKS 512
130
#define READV_MAXCHUNKSIZE (1024*192)
131
132
// SOCKS4 support
133
#define NAME_SOCKS4HOST (char *)"Socks4Server"
134
#define NAME_SOCKS4PORT (char *)"Socks4Port"
135
136
// Default TCP windows size
137
// A value of '0' implies "use the default OS settings"
138
// which enables window scaling on some platforms (linux, MacOsX)
139
// but may be to small on others (solaris); the preprocessor macro
140
// is set based on the platform information found in configure
141
#if defined(__linux__) || defined(__APPLE__)
142
#define DFLT_DFLTTCPWINDOWSIZE (0)
143
#else
144
#define DFLT_DFLTTCPWINDOWSIZE (262144)
145
#endif
146
#define NAME_DFLTTCPWINDOWSIZE (char *)"DfltTcpWindowSize"
147
148
// A connection towards a data server timeouts quickly
149
#define DFLT_DATASERVERCONN_TTL 300
150
#define NAME_DATASERVERCONN_TTL (char *)"DataServerConn_ttl"
151
152
// A connection towards a Load Balancer timeouts after many seconds of no use
153
#define DFLT_LBSERVERCONN_TTL 1200
154
#define NAME_LBSERVERCONN_TTL (char *)"LBServerConn_ttl"
155
156
// Switch on/off the fork handlers
157
#define DFLT_ENABLE_FORK_HANDLERS 0
158
#define NAME_ENABLE_FORK_HANDLERS (char *)"EnableForkHandlers"
159
160
// Use TCP keepalive
161
#define DFLT_ENABLE_TCP_KEEPALIVE 0
162
#define NAME_ENABLE_TCP_KEEPALIVE (char *)"EnableTCPKeepAlive"
163
164
// Tweak the TCP keepalive - these are only meaningful on Linux
165
166
// Interval (in seconds) between the last data packet and the first probe
167
#define DFLT_TCP_KEEPALIVE_TIME 7200
168
#define NAME_TCP_KEEPALIVE_TIME (char *)"TCPKeepAliveTime"
169
170
// Interval (in seconds) between the probes
171
#define DFLT_TCP_KEEPALIVE_INTERVAL 75
172
#define NAME_TCP_KEEPALIVE_INTERVAL (char *)"TCPKeepAliveInterval"
173
174
// Number of probes lost to consider the connection broken
175
#define DFLT_TCP_KEEPALIVE_PROBES 9
176
#define NAME_TCP_KEEPALIVE_PROBES (char *)"TCPKeepAliveProbes"
177
178
// Enable/disable the file size hint in xrdcp
179
#define DFLT_XRDCP_SIZE_HINT 1
180
#define NAME_XRDCP_SIZE_HINT (char *)"XrdCpSizeHint"
181
182
// Enable/disable redirection printing
183
#define DFLT_PRINT_REDIRECTS 0
184
#define NAME_PRINT_REDIRECTS (char *)"PrintRedirects"
185
186
#define TRUE 1
187
#define FALSE 0
188
189
#define xrdmin(a, b) (a < b ? a : b)
190
#define xrdmax(a, b) (a > b ? a : b)
191
192
#endif