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
char data[4]
Start of data.
int dlen
Data Length in subsequent buffer.
XrdSfsFABuff * next
char nPfx[2]
The namespace being used.
XrdSfsFABuff * fabP
-> Additional memory that was allocated
static const int retval
Above plus return actual attr value.
const char * pfnP
The file path to act on (physical)
XrdSfsFACtl(const char *p, const char *opq, int anum)
const char * path
The file path to act on (logical)
unsigned char rqst
Type of file attribute request (see below)
const char * pcgi
Opaque information (null if none)
static const int accChk
Perform access check.
static const int retvsz
Above plus return size of attr value.
static const int xplode
Construct an info vec from faList.
static const int newAtr
For set the attribute must not exist.
XrdOucEnv * envP
Optional environmental information.
XrdSfsFAInfo * info
Pointer to attribute information.
unsigned char opts
Request options (see below)
unsigned short iNum
Number of info entries.
char * Name
Variable name.
int VLen
Variable value length (aligned)
char * Value
Variable value.
short NLen
Length of name not including null byte.
int faRC
Action return code for this element.