xrootd
XrdOucPsx.hh
Go to the documentation of this file.
1#ifndef _XRDOUCPSX_H
2#define _XRDOUCPSX_H
3/******************************************************************************/
4/* */
5/* X r d O u c P s x . h h */
6/* */
7/* (c) 2017 by the Board of Trustees of the Leland Stanford, Jr., University */
8/* All Rights Reserved */
9/* Produced by Andrew Hanushevsky for Stanford University under contract */
10/* DE-AC02-76-SFO0515 with the Department of Energy */
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#include <stdlib.h>
34#include <string.h>
35#include <sys/types.h>
36
38
39class XrdOucCacheIF;
40class XrdOucEnv;
41class XrdOucName2Name;
42class XrdSysError;
43class XrdOucStream;
44class XrdOucTList;
45
46struct XrdVersionInfo;
47
49{
50public:
51
52const
53char *CCMInfo(const char *&path) {path = mPath; return mParm;}
54
55bool ClientConfig(const char *pfx, bool hush=false);
56
57bool ConfigSetup(XrdSysError &eDest, bool hush=false);
58
60
62
64
66
68
70
72
74
75void SetRoot(const char *lroot, const char *oroot=0);
76
77char *configFN; // -> Pointer to the config file name
80XrdOucName2Name *theN2N; // -> File mapper object
81XrdOucCache *theCache; // -> V1 cache
82XrdOucCache2 *theCache2; // -> V2 cache
83XrdOucCacheCMInit_t initCCM; // -> Cache context manager initializer
84char *mCache; // -> memory cache parameters
92bool useV4;
96
97 XrdOucPsx(XrdVersionInfo *vInfo, const char *cfn, XrdSysLogger *lp=0)
98 : configFN(strdup(cfn)), theLogger(lp), theEnv(0),
99 theN2N(0), theCache(0), theCache2(0), initCCM(0),
100 mCache(0), setFirst(0), setLast(0), maxRHCB(0),
101 traceLvl(0), debugLvl(0), cioWait(0), cioTries(0),
102 useV4(false), xLfn2Pfn(false), xPfn2Lfn(false),
103 xNameLib(false),
104 LocalRoot(0), RemotRoot(0), N2NLib(0), N2NParms(0),
105 cPath(0), cParm(0), mPath(0), mParm(0),
106 myVersion(vInfo) {}
108
109private:
110
111char *LocalRoot;// -> Local n2n root, if any
112char *RemotRoot;// -> Remote n2n root, if any
113char *N2NLib; // -> Name2Name Library Path
114char *N2NParms; // -> Name2Name Object Parameters
115char *cPath; // -> Cache path
116char *cParm; // -> Cache parameters
117char *mPath; // -> CCM path
118char *mParm; // -> CCM parameters
119XrdVersionInfo *myVersion;// -> Compilation version
120
123bool LoadCCM(XrdSysError &eDest);
125char *ParseCache(XrdSysError *Eroute, XrdOucStream &Config, char *pBuff);
126void ParseSet(const char *kword, int kval);
127void WarnConfig(XrdSysError &eDest, XrdOucTList *tList, bool fatal);
129 const char *txt1, const char *txt2);
130};
131#endif
bool(* XrdOucCacheCMInit_t)(XrdPosixCache &Cache, XrdSysLogger *Logger, const char *Config, const char *Parms, XrdOucEnv *envP)
Definition: XrdOucCacheCM.hh:67
Definition: XrdOucCache2.hh:197
Definition: XrdOucCache.hh:283
Definition: XrdOucEnv.hh:42
Definition: XrdOucName2Name.hh:49
Definition: XrdOucPsx.hh:49
bool Parse(char *, XrdOucStream &, XrdSysError &)
XrdOucEnv * theEnv
Definition: XrdOucPsx.hh:79
bool useV4
Definition: XrdOucPsx.hh:92
void ParseSet(const char *kword, int kval)
char * LocalRoot
Definition: XrdOucPsx.hh:111
int maxRHCB
Definition: XrdOucPsx.hh:87
void WarnConfig(XrdSysError &eDest, XrdOucTList *tList, bool fatal)
bool ParseINet(XrdSysError *Eroute, XrdOucStream &Config)
XrdOucPsx(XrdVersionInfo *vInfo, const char *cfn, XrdSysLogger *lp=0)
Definition: XrdOucPsx.hh:97
char * cParm
Definition: XrdOucPsx.hh:116
bool LoadCCM(XrdSysError &eDest)
bool ClientConfig(const char *pfx, bool hush=false)
char * configFN
Definition: XrdOucPsx.hh:77
bool ParseCio(XrdSysError *Eroute, XrdOucStream &Config)
bool ConfigCache(XrdSysError &eDest)
char * mCache
Definition: XrdOucPsx.hh:84
int traceLvl
Definition: XrdOucPsx.hh:88
int cioTries
Definition: XrdOucPsx.hh:91
void SetRoot(const char *lroot, const char *oroot=0)
bool ParseMLib(XrdSysError *Eroute, XrdOucStream &Config)
char * ParseCache(XrdSysError *Eroute, XrdOucStream &Config, char *pBuff)
char * N2NParms
Definition: XrdOucPsx.hh:114
XrdVersionInfo * myVersion
Definition: XrdOucPsx.hh:119
char * RemotRoot
Definition: XrdOucPsx.hh:112
XrdOucCache * theCache
Definition: XrdOucPsx.hh:81
int cioWait
Definition: XrdOucPsx.hh:90
char * cPath
Definition: XrdOucPsx.hh:115
XrdOucTList * setFirst
Definition: XrdOucPsx.hh:85
bool xNameLib
Definition: XrdOucPsx.hh:95
int debugLvl
Definition: XrdOucPsx.hh:89
char * N2NLib
Definition: XrdOucPsx.hh:113
bool xLfn2Pfn
Definition: XrdOucPsx.hh:93
bool ConfigN2N(XrdSysError &eDest)
bool ParseCache(XrdSysError *Eroute, XrdOucStream &Config)
XrdOucName2Name * theN2N
Definition: XrdOucPsx.hh:80
bool xPfn2Lfn
Definition: XrdOucPsx.hh:94
XrdOucCacheCMInit_t initCCM
Definition: XrdOucPsx.hh:83
const char * CCMInfo(const char *&path)
Definition: XrdOucPsx.hh:53
XrdOucCache2 * theCache2
Definition: XrdOucPsx.hh:82
XrdOucTList * setLast
Definition: XrdOucPsx.hh:86
char * mPath
Definition: XrdOucPsx.hh:117
bool ParseCLib(XrdSysError *Eroute, XrdOucStream &Config)
void WarnPlugin(XrdSysError &eDest, XrdOucTList *tList, const char *txt1, const char *txt2)
char * mParm
Definition: XrdOucPsx.hh:118
bool ConfigSetup(XrdSysError &eDest, bool hush=false)
XrdSysLogger * theLogger
Definition: XrdOucPsx.hh:78
bool ParseNLib(XrdSysError *Eroute, XrdOucStream &Config)
bool ParseTrace(XrdSysError *Eroute, XrdOucStream &Config)
bool ParseSet(XrdSysError *Eroute, XrdOucStream &Config)
Definition: XrdOucStream.hh:46
Definition: XrdOucTList.hh:42
Definition: XrdSysError.hh:90
Definition: XrdSysLogger.hh:53
XrdCmsConfig Config