xrootd
Loading...
Searching...
No Matches
XrdSfsFAttr.hh
Go to the documentation of this file.
1#ifndef __SFS_FATTR_H__
2#define __SFS_FATTR_H__
3/******************************************************************************/
4/* */
5/* X r d S f s F A t t r . h h */
6/* */
7/*(c) 2018 by the Board of Trustees of the Leland Stanford, Jr., University */
8/*Produced by Andrew Hanushevsky for Stanford University under contract */
9/* DE-AC02-76-SFO0515 with the Deprtment of Energy */
10/* */
11/* This file is part of the XRootD software suite. */
12/* */
13/* XRootD is free software: you can redistribute it and/or modify it under */
14/* the terms of the GNU Lesser General Public License as published by the */
15/* Free Software Foundation, either version 3 of the License, or (at your */
16/* option) any later version. */
17/* */
18/* XRootD is distributed in the hope that it will be useful, but WITHOUT */
19/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */
20/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public */
21/* License for more details. */
22/* */
23/* You should have received a copy of the GNU Lesser General Public License */
24/* along with XRootD in a file called COPYING.LESSER (LGPL license) and file */
25/* COPYING (GPL license). If not, see <http://www.gnu.org/licenses/>. */
26/* */
27/* The copyright holder's institutional names and contributor's names may not */
28/* be used to endorse or promote products derived from this software without */
29/* specific prior written permission of the institution or contributor. */
30/******************************************************************************/
31
32#include <cstdlib>
33
34//-----------------------------------------------------------------------------
37//-----------------------------------------------------------------------------
38
39/******************************************************************************/
40/* X r d S f s F A I n f o */
41/******************************************************************************/
42
44{
45char *Name;
46char *Value;
47int VLen;
48short NLen;
49int faRC;
50
51 XrdSfsFAInfo() : Value(0), VLen(0), NLen(0), faRC(0) {}
53};
54
55/******************************************************************************/
56/* X r d S f s F A B u f f */
57/******************************************************************************/
58
60{
62int dlen;
63char data[4];
64};
65
66/******************************************************************************/
67/* X r d S f s F A C t l */
68/******************************************************************************/
69
70class XrdOucEnv;
71
73{
74const char *path;
75const char *pcgi;
76const char *pfnP;
80char nPfx[2];
81unsigned short iNum;
82unsigned char rqst;
83unsigned char opts;
84
85enum RQST:char {faDel = 0, faGet, faLst, faSet, faFence};
86
87static const int accChk = 0x01;
88static const int newAtr = 0x02;
89static const int xplode = 0x04;
90static const int retvsz = 0x0c;
91static const int retval = 0x1c;
92
93 XrdSfsFACtl(const char *p, const char *opq, int anum)
94 : path(p), pcgi(opq), pfnP(0), info(0), envP(0),
95 fabP(0), iNum(anum), rqst(255), opts(0)
96 {nPfx[0] = 0; nPfx[1] = 0;}
97
99 while((dP = nP)) {nP = nP->next; free(dP);}
100 if (info) delete [] info;
101 }
102};
103#endif
Definition XrdOucEnv.hh:42
Definition XrdSfsFAttr.hh:60
char data[4]
Start of data.
Definition XrdSfsFAttr.hh:63
int dlen
Data Length in subsequent buffer.
Definition XrdSfsFAttr.hh:62
XrdSfsFABuff * next
Definition XrdSfsFAttr.hh:61
Definition XrdSfsFAttr.hh:73
RQST
Definition XrdSfsFAttr.hh:85
@ faFence
Definition XrdSfsFAttr.hh:85
@ faSet
Definition XrdSfsFAttr.hh:85
@ faGet
Definition XrdSfsFAttr.hh:85
@ faLst
Definition XrdSfsFAttr.hh:85
@ faDel
Definition XrdSfsFAttr.hh:85
char nPfx[2]
The namespace being used.
Definition XrdSfsFAttr.hh:80
XrdSfsFABuff * fabP
-> Additional memory that was allocated
Definition XrdSfsFAttr.hh:79
static const int retval
Above plus return actual attr value.
Definition XrdSfsFAttr.hh:91
~XrdSfsFACtl()
Definition XrdSfsFAttr.hh:98
const char * pfnP
The file path to act on (physical)
Definition XrdSfsFAttr.hh:76
XrdSfsFACtl(const char *p, const char *opq, int anum)
Definition XrdSfsFAttr.hh:93
const char * path
The file path to act on (logical)
Definition XrdSfsFAttr.hh:74
unsigned char rqst
Type of file attribute request (see below)
Definition XrdSfsFAttr.hh:82
const char * pcgi
Opaque information (null if none)
Definition XrdSfsFAttr.hh:75
static const int accChk
Perform access check.
Definition XrdSfsFAttr.hh:87
static const int retvsz
Above plus return size of attr value.
Definition XrdSfsFAttr.hh:90
static const int xplode
Construct an info vec from faList.
Definition XrdSfsFAttr.hh:89
static const int newAtr
For set the attribute must not exist.
Definition XrdSfsFAttr.hh:88
XrdOucEnv * envP
Optional environmental information.
Definition XrdSfsFAttr.hh:78
XrdSfsFAInfo * info
Pointer to attribute information.
Definition XrdSfsFAttr.hh:77
unsigned char opts
Request options (see below)
Definition XrdSfsFAttr.hh:83
unsigned short iNum
Number of info entries.
Definition XrdSfsFAttr.hh:81
Definition XrdSfsFAttr.hh:44
char * Name
Variable name.
Definition XrdSfsFAttr.hh:45
int VLen
Variable value length (aligned)
Definition XrdSfsFAttr.hh:47
char * Value
Variable value.
Definition XrdSfsFAttr.hh:46
short NLen
Length of name not including null byte.
Definition XrdSfsFAttr.hh:48
int faRC
Action return code for this element.
Definition XrdSfsFAttr.hh:49
XrdSfsFAInfo()
Definition XrdSfsFAttr.hh:51
~XrdSfsFAInfo()
Definition XrdSfsFAttr.hh:52