xrootd
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
XrdClConstants.hh
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 // Copyright (c) 2011-2012 by European Organization for Nuclear Research (CERN)
3 // Author: Lukasz Janyst <ljanyst@cern.ch>
4 //------------------------------------------------------------------------------
5 // XRootD is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // XRootD is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with XRootD. If not, see <http://www.gnu.org/licenses/>.
17 //------------------------------------------------------------------------------
18 
19 #ifndef __XRD_CL_CONSTANTS_HH__
20 #define __XRD_CL_CONSTANTS_HH__
21 
22 #include <cstdint>
23 #include <unordered_map>
24 #include <string>
25 #include <algorithm>
26 
27 namespace XrdCl
28 {
29  //----------------------------------------------------------------------------
30  // Log message types
31  //----------------------------------------------------------------------------
32  const uint64_t AppMsg = 0x0000000000000001ULL;
33  const uint64_t UtilityMsg = 0x0000000000000002ULL;
34  const uint64_t FileMsg = 0x0000000000000004ULL;
35  const uint64_t PollerMsg = 0x0000000000000008ULL;
36  const uint64_t PostMasterMsg = 0x0000000000000010ULL;
37  const uint64_t XRootDTransportMsg = 0x0000000000000020ULL;
38  const uint64_t TaskMgrMsg = 0x0000000000000040ULL;
39  const uint64_t XRootDMsg = 0x0000000000000080ULL;
40  const uint64_t FileSystemMsg = 0x0000000000000100ULL;
41  const uint64_t AsyncSockMsg = 0x0000000000000200ULL;
42  const uint64_t JobMgrMsg = 0x0000000000000400ULL;
43  const uint64_t PlugInMgrMsg = 0x0000000000000800ULL;
44  const uint64_t ExDbgMsg = 0x0000000000001000ULL; //special type debugging extra-hard problems
45  const uint64_t TlsMsg = 0x0000000000002000ULL;
46  const uint64_t ZipMsg = 0x0000000000004000ULL;
47 
48  //----------------------------------------------------------------------------
49  // Environment settings
50  //----------------------------------------------------------------------------
52  const int DefaultConnectionWindow = 120;
53  const int DefaultConnectionRetry = 5;
54  const int DefaultRequestTimeout = 1800;
55  const int DefaultStreamTimeout = 60;
56  const int DefaultTimeoutResolution = 15;
57  const int DefaultStreamErrorWindow = 1800;
58  const int DefaultRunForkHandler = 1;
59  const int DefaultRedirectLimit = 16;
60  const int DefaultWorkerThreads = 3;
61  const int DefaultCPChunkSize = 8388608;
62  const int DefaultCPParallelChunks = 4;
63  const int DefaultDataServerTTL = 300;
64  const int DefaultLoadBalancerTTL = 1200;
65  const int DefaultCPInitTimeout = 600;
66  const int DefaultCPTPCTimeout = 1800;
67  const int DefaultCPTimeout = 0;
68  const int DefaultTCPKeepAlive = 0;
69  const int DefaultTCPKeepAliveTime = 7200;
72  const int DefaultMultiProtocol = 0;
73  const int DefaultParallelEvtLoop = 1;
75  const int DefaultLocalMetalinkFile = 0;
76  const int DefaultXRateThreshold = 0;
77  const int DefaultXCpBlockSize = 134217728; // DefaultCPChunkSize * DefaultCPParallelChunks * 2
78 #ifdef __APPLE__
79  // we don't have corking on osx so we cannot turn of nagle
80  const int DefaultNoDelay = 0;
81 #else
82  const int DefaultNoDelay = 1;
83 #endif
84  const int DefaultAioSignal = 0;
85  const int DefaultPreferIPv4 = 0;
86  const int DefaultMaxMetalinkWait = 60;
89  const int DefaultPreserveXAttrs = 0;
90  const int DefaultNoTlsOK = 0;
91  const int DefaultTlsNoData = 0;
92  const int DefaultTlsMetalink = 0;
93  const int DefaultZipMtlnCksum = 0;
94  const int DefaultIPNoShuffle = 0;
95  const int DefaultWantTlsOnNoPgrw = 0;
96  const int DefaultRetryWrtAtLBLimit = 3;
97  const int DefaultCpRetry = 0;
98  const int DefaultCpUsePgWrtRd = 1;
99 
100  const char * const DefaultPollerPreference = "built-in";
101  const char * const DefaultNetworkStack = "IPAuto";
102  const char * const DefaultClientMonitor = "";
103  const char * const DefaultClientMonitorParam = "";
104  const char * const DefaultPlugInConfDir = "";
105  const char * const DefaultPlugIn = "";
106  const char * const DefaultReadRecovery = "true";
107  const char * const DefaultWriteRecovery = "true";
108  const char * const DefaultOpenRecovery = "true";
109  const char * const DefaultGlfnRedirector = "";
110  const char * const DefaultTlsDbgLvl = "OFF";
111  const char * const DefaultClConfDir = "";
112  const char * const DefaultClConfFile = "";
113  const char * const DefaultCpTarget = "";
114  const char * const DefaultCpRetryPolicy = "force";
115 
116  inline static std::string to_lower( std::string str )
117  {
118  std::transform( str.begin(), str.end(), str.begin(), ::tolower );
119  return str;
120  }
121 
122  static std::unordered_map<std::string, int> theDefaultInts
123  {
124  { to_lower( "SubStreamsPerChannel" ), DefaultSubStreamsPerChannel },
125  { to_lower( "ConnectionWindow" ), DefaultConnectionWindow },
126  { to_lower( "ConnectionRetry" ), DefaultConnectionRetry },
127  { to_lower( "RequestTimeout" ), DefaultRequestTimeout },
128  { to_lower( "StreamTimeout" ), DefaultStreamTimeout },
129  { to_lower( "TimeoutResolution" ), DefaultTimeoutResolution },
130  { to_lower( "StreamErrorWindow" ), DefaultStreamErrorWindow },
131  { to_lower( "RunForkHandler" ), DefaultRunForkHandler },
132  { to_lower( "RedirectLimit" ), DefaultRedirectLimit },
133  { to_lower( "WorkerThreads" ), DefaultWorkerThreads },
134  { to_lower( "CPChunkSize" ), DefaultCPChunkSize },
135  { to_lower( "CPParallelChunks" ), DefaultCPParallelChunks },
136  { to_lower( "DataServerTTL" ), DefaultDataServerTTL },
137  { to_lower( "LoadBalancerTTL" ), DefaultLoadBalancerTTL },
138  { to_lower( "CPInitTimeout" ), DefaultCPInitTimeout },
139  { to_lower( "CPTPCTimeout" ), DefaultCPTPCTimeout },
140  { to_lower( "CPTimeout" ), DefaultCPTimeout },
141  { to_lower( "TCPKeepAlive" ), DefaultTCPKeepAlive },
142  { to_lower( "TCPKeepAliveTime" ), DefaultTCPKeepAliveTime },
143  { to_lower( "TCPKeepAliveInterval" ), DefaultTCPKeepAliveInterval },
144  { to_lower( "TCPKeepAliveProbes" ), DefaultTCPKeepAliveProbes },
145  { to_lower( "MultiProtocol" ), DefaultMultiProtocol },
146  { to_lower( "ParallelEvtLoop" ), DefaultParallelEvtLoop },
147  { to_lower( "MetalinkProcessing" ), DefaultMetalinkProcessing },
148  { to_lower( "LocalMetalinkFile" ), DefaultLocalMetalinkFile },
149  { to_lower( "XRateThreshold" ), DefaultXRateThreshold },
150  { to_lower( "XCpBlockSize" ), DefaultXCpBlockSize },
151  { to_lower( "NoDelay" ), DefaultNoDelay },
152  { to_lower( "AioSignal" ), DefaultAioSignal },
153  { to_lower( "PreferIPv4" ), DefaultPreferIPv4 },
154  { to_lower( "MaxMetalinkWait" ), DefaultMaxMetalinkWait },
155  { to_lower( "PreserveLocateTried" ), DefaultPreserveLocateTried },
156  { to_lower( "NotAuthorizedRetryLimit" ), DefaultNotAuthorizedRetryLimit },
157  { to_lower( "PreserveXAttrs" ), DefaultPreserveXAttrs },
158  { to_lower( "NoTlsOK" ), DefaultNoTlsOK },
159  { to_lower( "TlsNoData" ), DefaultTlsNoData },
160  { to_lower( "TlsMetalink" ), DefaultTlsMetalink },
161  { to_lower( "ZipMtlnCksum" ), DefaultZipMtlnCksum },
162  { to_lower( "IPNoShuffle" ), DefaultIPNoShuffle },
163  { to_lower( "WantTlsOnNoPgrw" ), DefaultWantTlsOnNoPgrw },
164  { to_lower( "RetryWrtAtLBLimit" ), DefaultRetryWrtAtLBLimit }
165  };
166 
167  static std::unordered_map<std::string, std::string> theDefaultStrs
168  {
169  { to_lower( "PollerPreference" ), DefaultPollerPreference },
170  { to_lower( "NetworkStack" ), DefaultNetworkStack },
171  { to_lower( "ClientMonitor" ), DefaultClientMonitor },
172  { to_lower( "ClientMonitorParam" ), DefaultClientMonitorParam },
173  { to_lower( "PlugInConfDir" ), DefaultPlugInConfDir },
174  { to_lower( "PlugIn" ), DefaultPlugIn },
175  { to_lower( "ReadRecovery" ), DefaultReadRecovery },
176  { to_lower( "WriteRecovery" ), DefaultWriteRecovery },
177  { to_lower( "OpenRecovery" ), DefaultOpenRecovery },
178  { to_lower( "GlfnRedirector" ), DefaultGlfnRedirector },
179  { to_lower( "TlsDbgLvl" ), DefaultTlsDbgLvl },
180  { to_lower( "ClConfDir" ), DefaultClConfDir },
181  { to_lower( "DefaultClConfFile" ), DefaultClConfFile },
182  { to_lower( "CpTarget" ), DefaultCpTarget }
183  };
184 }
185 
186 #endif // __XRD_CL_CONSTANTS_HH__
const uint64_t ZipMsg
Definition: XrdClConstants.hh:46
const uint64_t PollerMsg
Definition: XrdClConstants.hh:35
static std::unordered_map< std::string, int > theDefaultInts
Definition: XrdClConstants.hh:123
const int DefaultCPChunkSize
Definition: XrdClConstants.hh:61
const int DefaultTCPKeepAliveTime
Definition: XrdClConstants.hh:69
const uint64_t ExDbgMsg
Definition: XrdClConstants.hh:44
const char *const DefaultWriteRecovery
Definition: XrdClConstants.hh:107
const uint64_t FileMsg
Definition: XrdClConstants.hh:34
const int DefaultCPTPCTimeout
Definition: XrdClConstants.hh:66
const int DefaultTCPKeepAliveInterval
Definition: XrdClConstants.hh:70
const int DefaultPreferIPv4
Definition: XrdClConstants.hh:85
const uint64_t AsyncSockMsg
Definition: XrdClConstants.hh:41
const int DefaultDataServerTTL
Definition: XrdClConstants.hh:63
const char *const DefaultReadRecovery
Definition: XrdClConstants.hh:106
const int DefaultMetalinkProcessing
Definition: XrdClConstants.hh:74
const int DefaultXCpBlockSize
Definition: XrdClConstants.hh:77
const int DefaultLoadBalancerTTL
Definition: XrdClConstants.hh:64
const int DefaultRunForkHandler
Definition: XrdClConstants.hh:58
const int DefaultStreamTimeout
Definition: XrdClConstants.hh:55
const int DefaultNotAuthorizedRetryLimit
Definition: XrdClConstants.hh:88
const char *const DefaultClientMonitor
Definition: XrdClConstants.hh:102
const int DefaultTlsNoData
Definition: XrdClConstants.hh:91
const char *const DefaultGlfnRedirector
Definition: XrdClConstants.hh:109
const int DefaultStreamErrorWindow
Definition: XrdClConstants.hh:57
const uint64_t XRootDMsg
Definition: XrdClConstants.hh:39
const int DefaultCPInitTimeout
Definition: XrdClConstants.hh:65
const char *const DefaultTlsDbgLvl
Definition: XrdClConstants.hh:110
const int DefaultIPNoShuffle
Definition: XrdClConstants.hh:94
const int DefaultWantTlsOnNoPgrw
Definition: XrdClConstants.hh:95
const char *const DefaultPollerPreference
Definition: XrdClConstants.hh:100
const char *const DefaultClientMonitorParam
Definition: XrdClConstants.hh:103
const int DefaultConnectionRetry
Definition: XrdClConstants.hh:53
const int DefaultCPTimeout
Definition: XrdClConstants.hh:67
const int DefaultXRateThreshold
Definition: XrdClConstants.hh:76
const int DefaultWorkerThreads
Definition: XrdClConstants.hh:60
const int DefaultRetryWrtAtLBLimit
Definition: XrdClConstants.hh:96
const char *const DefaultPlugInConfDir
Definition: XrdClConstants.hh:104
const int DefaultParallelEvtLoop
Definition: XrdClConstants.hh:73
const char *const DefaultPlugIn
Definition: XrdClConstants.hh:105
const int DefaultTimeoutResolution
Definition: XrdClConstants.hh:56
static std::string to_lower(std::string str)
Definition: XrdClConstants.hh:116
const uint64_t JobMgrMsg
Definition: XrdClConstants.hh:42
const uint64_t TlsMsg
Definition: XrdClConstants.hh:45
const char *const DefaultClConfDir
Definition: XrdClConstants.hh:111
const int DefaultCpRetry
Definition: XrdClConstants.hh:97
const int DefaultZipMtlnCksum
Definition: XrdClConstants.hh:93
const uint64_t PlugInMgrMsg
Definition: XrdClConstants.hh:43
const int DefaultCPParallelChunks
Definition: XrdClConstants.hh:62
const int DefaultCpUsePgWrtRd
Definition: XrdClConstants.hh:98
const int DefaultTCPKeepAliveProbes
Definition: XrdClConstants.hh:71
const char *const DefaultClConfFile
Definition: XrdClConstants.hh:112
const int DefaultMultiProtocol
Definition: XrdClConstants.hh:72
const uint64_t XRootDTransportMsg
Definition: XrdClConstants.hh:37
const int DefaultMaxMetalinkWait
Definition: XrdClConstants.hh:86
const uint64_t UtilityMsg
Definition: XrdClConstants.hh:33
const int DefaultTlsMetalink
Definition: XrdClConstants.hh:92
const int DefaultNoTlsOK
Definition: XrdClConstants.hh:90
const int DefaultAioSignal
Definition: XrdClConstants.hh:84
const int DefaultPreserveXAttrs
Definition: XrdClConstants.hh:89
const char *const DefaultCpRetryPolicy
Definition: XrdClConstants.hh:114
const char *const DefaultNetworkStack
Definition: XrdClConstants.hh:101
const int DefaultNoDelay
Definition: XrdClConstants.hh:82
const char *const DefaultCpTarget
Definition: XrdClConstants.hh:113
const int DefaultSubStreamsPerChannel
Definition: XrdClConstants.hh:51
const char *const DefaultOpenRecovery
Definition: XrdClConstants.hh:108
const uint64_t AppMsg
Definition: XrdClConstants.hh:32
const int DefaultConnectionWindow
Definition: XrdClConstants.hh:52
const int DefaultPreserveLocateTried
Definition: XrdClConstants.hh:87
const int DefaultRedirectLimit
Definition: XrdClConstants.hh:59
const int DefaultRequestTimeout
Definition: XrdClConstants.hh:54
const uint64_t FileSystemMsg
Definition: XrdClConstants.hh:40
const uint64_t PostMasterMsg
Definition: XrdClConstants.hh:36
const int DefaultLocalMetalinkFile
Definition: XrdClConstants.hh:75
const int DefaultTCPKeepAlive
Definition: XrdClConstants.hh:68
const uint64_t TaskMgrMsg
Definition: XrdClConstants.hh:38
static std::unordered_map< std::string, std::string > theDefaultStrs
Definition: XrdClConstants.hh:168