Logo ROOT  
Reference Guide
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