xrootd
Main Page
Namespaces
Classes
Files
File List
File Members
src
XrdFrc
XrdFrcRequest.hh
Go to the documentation of this file.
1
#ifndef __FRCREQUEST_H__
2
#define __FRCREQUEST_H__
3
/******************************************************************************/
4
/* */
5
/* X r d F r c R e q u e s t . h h */
6
/* */
7
/* (c) 2010 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
class
XrdFrcRequest
34
{
35
public
:
36
37
char
LFN
[3072];
// Logical File Name ('\0' optional opaque)
38
char
User
[256];
// User trace identifier
39
char
ID
[40];
// Request ID
40
char
Notify
[512];
// Notification path
41
char
Reserved
[88];
42
char
iName
[32];
// Instance name
43
char
csValue
[64];
// Checksum value (dependent on csType).
44
long
long
addTOD
;
// Time added to queue
45
int
This
;
// Offset to this request
46
int
Next
;
// Offset to next request
47
int
Options
;
// Processing options (see below)
48
short
LFO
;
// Offset to lfn in url if LFN is a url (o/w 0)
49
short
Opaque
;
// Offset to '?' in LFN if exists, 0 o/w
50
char
Reserved2
;
51
char
csType
;
// Checksum type
52
char
OPc
;
// Original Operation Request code (debugging)
53
char
Prty
;
// Request priority
54
55
// Flags set in options
56
//
57
static
const
int
msgFail
= 0x00000001;
58
static
const
int
msgSucc
= 0x00000002;
59
static
const
int
makeRW
= 0x00000004;
60
static
const
int
Migrate
= 0x00000010;
61
static
const
int
Purge
= 0x00000020;
62
static
const
int
Register
= 0x00000040;
63
64
// Checksum types (not all of which are supported)
65
//
66
static
const
int
csNone
= 0;
67
static
const
int
csSHA1
= 1;
68
static
const
int
csSHA2
= 2;
69
static
const
int
csSHA3
= 3;
70
static
const
int
csAdler32
= 4;
71
static
const
int
csMD5
= 5;
72
static
const
int
csCRC32
= 6;
73
74
// These define valid priorities
75
//
76
static
const
int
maxPrty
= 2;
77
static
const
int
maxPQE
= 3;
78
79
// The following define what can be listed from the queue
80
//
81
enum
Item
{
getOBJ
= 0,
getLFN
,
getOBJCGI
,
getLFNCGI
,
getMODE
,
getNOTE
,
getOP
,
82
getPRTY
,
getQWT
,
getRID
,
getTOD
,
getUSER
,
getLast
};
83
84
// These define possible queues along with the "nil" queue
85
//
86
static
const
int
stgQ
= 0;
// Stage queue
87
static
const
int
migQ
= 1;
// Migrate queue
88
static
const
int
getQ
= 2;
// Copy in queue
89
static
const
int
putQ
= 3;
// Copy out queue
90
static
const
int
nilQ
= 4;
// Empty queue
91
static
const
int
numQ
= 5;
92
static
const
int
outQ
= 1;
// Used as a mask only
93
};
94
#endif
Generated by
1.8.3.1