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
13
// $Id$
14
15
#include "
XProtocol/YProtocol.hh
"
16
17
#include "
Xrd/XrdJob.hh
"
18
#include "
XrdCms/XrdCmsNode.hh
"
19
#include "
XrdCms/XrdCmsRRData.hh
"
20
#include "
XrdSys/XrdSysPthread.hh
"
21
22
class
XrdCmsPrepArgs
:
public
XrdJob
23
{
24
public
:
25
static
const
int
iovNum
= 2;
26
27
XrdCms::CmsRRHdr
Request
;
28
char
*
Ident
;
29
char
*
reqid
;
30
char
*
notify
;
31
char
*
prty
;
32
char
*
mode
;
33
char
*
path
;
34
char
*
opaque
;
35
char
*
clPath
;
// ->coloc path, if any
36
int
options
;
37
int
pathlen
;
// Includes null byte
38
39
struct
iovec
ioV
[
iovNum
];
// To forward the request
40
41
void
DoIt
() {
if
(!
XrdCmsNode::do_SelPrep
(*
this
))
delete
this
;}
42
43
static
void
Process
();
44
45
void
Queue
();
46
47
static
XrdCmsPrepArgs
*
getRequest
();
48
49
XrdCmsPrepArgs
(
XrdCmsRRData
&Arg);
50
51
~XrdCmsPrepArgs
() {
if
(
Data
) free(
Data
);}
52
53
private
:
54
55
static
XrdSysMutex
PAQueue
;
56
static
XrdSysSemaphore
PAReady
;
57
XrdCmsPrepArgs
*
Next
;
58
static
XrdCmsPrepArgs
*
First
;
59
static
XrdCmsPrepArgs
*
Last
;
60
static
int
isIdle
;
61
char
*
Data
;
62
63
};
64
#endif
Generated by
1.8.1.2