ROOT
6.07/09
Reference Guide
ROOT Home Page
Main Page
Tutorials
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
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