xrootd
Loading...
Searching...
No Matches
XrdOfsFSctl_PI.hh
Go to the documentation of this file.
1#ifndef __XRDOFSFSCTL_PI_H__
2#define __XRDOFSFSCTL_PI_H__
3/******************************************************************************/
4/* */
5/* X r d O f s F S c t l _ P I . h h */
6/* */
7/* (c) 2020 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
35
36class XrdAccAuthorize;
37class XrdCmsClient;
38class XrdOss;
39class XrdOucEnv;
40class XrdOucErrInfo;
41class XrdSecEntity;
42class XrdSfsFile;
44class XrdSfsFSctl;
45class XrdSysError;
46
47/******************************************************************************/
48/* X r d O f s F S C t l */
49/******************************************************************************/
50
52{
53public:
54friend class XrdOfsConfigPI;
55
56//-----------------------------------------------------------------------------
58//-----------------------------------------------------------------------------
59
66
67//-----------------------------------------------------------------------------
77//-----------------------------------------------------------------------------
78
79virtual bool Configure(const char *CfgFN,
80 const char *Parms,
81 XrdOucEnv *envP,
82 const Plugins &plugs) {return true;}
83
84//-----------------------------------------------------------------------------
100//-----------------------------------------------------------------------------
101
102virtual int FSctl(const int cmd,
103 int alen,
104 const char *args,
105 XrdSfsFile &file,
106 XrdOucErrInfo &eInfo,
107 const XrdSecEntity *client = 0) = 0;
108
109//-----------------------------------------------------------------------------
125//-----------------------------------------------------------------------------
126
127virtual int FSctl(const int cmd,
128 XrdSfsFSctl &args,
129 XrdOucErrInfo &eInfo,
130 const XrdSecEntity *client = 0) = 0;
131
132//------------------------------------------------------------------------------
134//------------------------------------------------------------------------------
135
137
138//------------------------------------------------------------------------------
140//------------------------------------------------------------------------------
141
142virtual ~XrdOfsFSctl_PI() {}
143
144protected:
145
146XrdOfsFSctl_PI *prvPI; // Stacked CTL plugin behind this one for forwarding
147 // If none, then the pointer is zero.
148XrdSysError *eDest; // Message logging object to be used for messages.
149};
150
151/******************************************************************************/
152/* X r d O f s F S c t l P l u g i n */
153/******************************************************************************/
154
155//------------------------------------------------------------------------------
159//------------------------------------------------------------------------------
160
166//------------------------------------------------------------------------------
172//------------------------------------------------------------------------------
173
179#endif
Definition XrdAccAuthorize.hh:68
Definition XrdCmsClient.hh:116
Definition XrdOfsConfigPI.hh:61
Definition XrdOfsFSctl_PI.hh:52
XrdOfsFSctl_PI()
Constructor.
Definition XrdOfsFSctl_PI.hh:136
virtual ~XrdOfsFSctl_PI()
Destructor.
Definition XrdOfsFSctl_PI.hh:142
XrdOfsFSctl_PI * prvPI
Definition XrdOfsFSctl_PI.hh:146
virtual bool Configure(const char *CfgFN, const char *Parms, XrdOucEnv *envP, const Plugins &plugs)
Definition XrdOfsFSctl_PI.hh:79
virtual int FSctl(const int cmd, XrdSfsFSctl &args, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)=0
virtual int FSctl(const int cmd, int alen, const char *args, XrdSfsFile &file, XrdOucErrInfo &eInfo, const XrdSecEntity *client=0)=0
XrdSysError * eDest
Definition XrdOfsFSctl_PI.hh:148
Definition XrdOss.hh:498
Definition XrdOucEnv.hh:42
Definition XrdOucErrInfo.hh:101
Definition XrdSecEntity.hh:65
Definition XrdSfsInterface.hh:845
Definition XrdSfsInterface.hh:369
Definition XrdSysError.hh:90
The Plugins struct is used to pass plugin pointers to configure.
Definition XrdOfsFSctl_PI.hh:61
XrdCmsClient * cmsPI
-> Cms client object generator plugin
Definition XrdOfsFSctl_PI.hh:62
XrdOss * ossPI
-> Oss plugin
Definition XrdOfsFSctl_PI.hh:63
XrdAccAuthorize * autPI
-> Authorization plugin
Definition XrdOfsFSctl_PI.hh:61
XrdSfsFileSystem * sfsPI
-> Sfs plugin (a.k.a. ofs)
Definition XrdOfsFSctl_PI.hh:64
< SFS_FSCTL_PLUGIN/PLUGIO/PLUGXC parms
Definition XrdSfsInterface.hh:161