XRootD
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
XrdCmsNode.hh
XrdCmsRRData.hh
XrdJob.hh
XrdSysPthread.hh
YProtocol.hh
XrdCmsNode::do_SelPrep
static int do_SelPrep(XrdCmsPrepArgs &Arg)
Definition:
XrdCmsNode.cc:1191
XrdCmsPrepArgs
Definition:
XrdCmsPrepArgs.hh:41
XrdCmsPrepArgs::Queue
void Queue()
Definition:
XrdCmsPrepArgs.cc:139
XrdCmsPrepArgs::Ident
char * Ident
Definition:
XrdCmsPrepArgs.hh:46
XrdCmsPrepArgs::options
int options
Definition:
XrdCmsPrepArgs.hh:54
XrdCmsPrepArgs::Process
static void Process()
Definition:
XrdCmsPrepArgs.cc:117
XrdCmsPrepArgs::mode
char * mode
Definition:
XrdCmsPrepArgs.hh:50
XrdCmsPrepArgs::notify
char * notify
Definition:
XrdCmsPrepArgs.hh:48
XrdCmsPrepArgs::ioV
struct iovec ioV[iovNum]
Definition:
XrdCmsPrepArgs.hh:57
XrdCmsPrepArgs::prty
char * prty
Definition:
XrdCmsPrepArgs.hh:49
XrdCmsPrepArgs::DoIt
void DoIt()
Definition:
XrdCmsPrepArgs.hh:59
XrdCmsPrepArgs::opaque
char * opaque
Definition:
XrdCmsPrepArgs.hh:52
XrdCmsPrepArgs::path
char * path
Definition:
XrdCmsPrepArgs.hh:51
XrdCmsPrepArgs::Request
XrdCms::CmsRRHdr Request
Definition:
XrdCmsPrepArgs.hh:45
XrdCmsPrepArgs::XrdCmsPrepArgs
XrdCmsPrepArgs(XrdCmsRRData &Arg)
Definition:
XrdCmsPrepArgs.cc:56
XrdCmsPrepArgs::~XrdCmsPrepArgs
~XrdCmsPrepArgs()
Definition:
XrdCmsPrepArgs.hh:69
XrdCmsPrepArgs::iovNum
static const int iovNum
Definition:
XrdCmsPrepArgs.hh:43
XrdCmsPrepArgs::reqid
char * reqid
Definition:
XrdCmsPrepArgs.hh:47
XrdCmsPrepArgs::clPath
char * clPath
Definition:
XrdCmsPrepArgs.hh:53
XrdCmsPrepArgs::getRequest
static XrdCmsPrepArgs * getRequest()
Definition:
XrdCmsPrepArgs.cc:94
XrdCmsPrepArgs::pathlen
int pathlen
Definition:
XrdCmsPrepArgs.hh:55
XrdCmsRRData
Definition:
XrdCmsRRData.hh:52
XrdJob
Definition:
XrdJob.hh:43
XrdSysMutex
Definition:
XrdSysPthread.hh:165
XrdSysSemaphore
Definition:
XrdSysPthread.hh:494
XrdCms::CmsRRHdr
Definition:
YProtocol.hh:83
XrdCms
XrdCmsPrepArgs.hh
Generated by
1.9.1