xrootd
Main Page
Namespaces
Classes
Files
File List
File Members
src
XrdCms
XrdCmsPrepArgs.hh
Go to the documentation of this file.
1
#ifndef __CMS_PREPARGS__H
2
#define __CMS_PREPARGS__H
3
/******************************************************************************/
4
/* */
5
/* X r d C m s P r e p A r g s . h h */
6
/* */
7
/* (c) 2007 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 "
XProtocol/YProtocol.hh
"
34
35
#include "
Xrd/XrdJob.hh
"
36
#include "
XrdCms/XrdCmsNode.hh
"
37
#include "
XrdCms/XrdCmsRRData.hh
"
38
#include "
XrdSys/XrdSysPthread.hh
"
39
40
class
XrdCmsPrepArgs
:
public
XrdJob
41
{
42
public
:
43
static
const
int
iovNum
= 2;
44
45
XrdCms::CmsRRHdr
Request
;
46
char
*
Ident
;
47
char
*
reqid
;
48
char
*
notify
;
49
char
*
prty
;
50
char
*
mode
;
51
char
*
path
;
52
char
*
opaque
;
53
char
*
clPath
;
// ->coloc path, if any
54
int
options
;
55
int
pathlen
;
// Includes null byte
56
57
struct
iovec
ioV
[
iovNum
];
// To forward the request
58
59
void
DoIt
() {
if
(!
XrdCmsNode::do_SelPrep
(*
this
))
delete
this
;}
60
61
static
void
Process
();
62
63
void
Queue
();
64
65
static
XrdCmsPrepArgs
*
getRequest
();
66
67
XrdCmsPrepArgs
(
XrdCmsRRData
&Arg);
68
69
~XrdCmsPrepArgs
() {
if
(
Data
) free(
Data
);}
70
71
private
:
72
73
static
XrdSysMutex
PAQueue
;
74
static
XrdSysSemaphore
PAReady
;
75
XrdCmsPrepArgs
*
Next
;
76
static
XrdCmsPrepArgs
*
First
;
77
static
XrdCmsPrepArgs
*
Last
;
78
static
int
isIdle
;
79
char
*
Data
;
80
81
};
82
#endif
Generated by
1.8.3.1