xrootd
Main Page
Namespaces
Classes
Files
File List
File Members
src
XrdCl
XrdClFSExecutor.hh
Go to the documentation of this file.
1
//------------------------------------------------------------------------------
2
// Copyright (c) 2011-2012 by European Organization for Nuclear Research (CERN)
3
// Author: Lukasz Janyst <ljanyst@cern.ch>
4
//------------------------------------------------------------------------------
5
// XRootD is free software: you can redistribute it and/or modify
6
// it under the terms of the GNU Lesser General Public License as published by
7
// the Free Software Foundation, either version 3 of the License, or
8
// (at your option) any later version.
9
//
10
// XRootD is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// GNU General Public License for more details.
14
//
15
// You should have received a copy of the GNU Lesser General Public License
16
// along with XRootD. If not, see <http://www.gnu.org/licenses/>.
17
//------------------------------------------------------------------------------
18
19
#ifndef __XRD_CL_FS_EXECUTOR_HH__
20
#define __XRD_CL_FS_EXECUTOR_HH__
21
22
#include "
XrdCl/XrdClFileSystem.hh
"
23
#include "
XrdCl/XrdClEnv.hh
"
24
#include "
XrdCl/XrdClUtils.hh
"
25
#include <vector>
26
#include <string>
27
#include <map>
28
29
namespace
XrdCl
30
{
31
//----------------------------------------------------------------------------
33
//----------------------------------------------------------------------------
34
class
FSExecutor
35
{
36
public
:
37
//------------------------------------------------------------------------
39
//------------------------------------------------------------------------
40
typedef
std::vector<std::string>
CommandParams
;
41
42
//------------------------------------------------------------------------
44
//------------------------------------------------------------------------
45
typedef
XRootDStatus
(*
Command
)(
FileSystem
*fs,
46
Env
*env,
47
const
CommandParams
&args );
48
49
//------------------------------------------------------------------------
54
//------------------------------------------------------------------------
55
FSExecutor
(
const
URL
&url,
Env
*env = 0 );
56
57
//------------------------------------------------------------------------
59
//------------------------------------------------------------------------
60
~FSExecutor
();
61
62
//------------------------------------------------------------------------
68
//------------------------------------------------------------------------
69
bool
AddCommand
(
const
std::string &name,
Command
command );
70
71
//------------------------------------------------------------------------
78
//------------------------------------------------------------------------
79
XRootDStatus
Execute
(
const
std::string &commandline );
80
81
//------------------------------------------------------------------------
83
//------------------------------------------------------------------------
84
Env
*
GetEnv
()
85
{
86
return
pEnv
;
87
}
88
89
private
:
90
typedef
std::map<std::string, Command>
CommandMap
;
91
FileSystem
*
pFS
;
92
Env
*
pEnv
;
93
CommandMap
pCommands
;
94
};
95
}
96
97
#endif // __XRD_CL_FS_EXECUTOR_HH__
Generated by
1.8.3.1