xrootd
Loading...
Searching...
No Matches
XrdClRecorderPlugin.hh
Go to the documentation of this file.
1//------------------------------------------------------------------------------
2// Copyright (c) 2011-2017 by European Organization for Nuclear Research (CERN)
3// Author: Michal Simon <michal.simon@cern.ch>
4//------------------------------------------------------------------------------
5// This file is part of the XRootD software suite.
6//
7// XRootD is free software: you can redistribute it and/or modify
8// it under the terms of the GNU Lesser General Public License as published by
9// the Free Software Foundation, either version 3 of the License, or
10// (at your option) any later version.
11//
12// XRootD is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16//
17// You should have received a copy of the GNU Lesser General Public License
18// along with XRootD. If not, see <http://www.gnu.org/licenses/>.
19//
20// In applying this licence, CERN does not waive the privileges and immunities
21// granted to it by virtue of its status as an Intergovernmental Organization
22// or submit itself to any jurisdiction.
23
24#pragma once
26
27namespace XrdCl
28{
29//------------------------------------------------------------------------------
31//------------------------------------------------------------------------------
33{
34 public:
35 //----------------------------------------------------------------------------
39 //----------------------------------------------------------------------------
40 RecorderFactory( const std::map<std::string, std::string>* config )
41 {
42 if( config )
43 {
44 auto itr = config->find( "output" );
45 Recorder::SetOutput( itr != config->end() ? itr->second : "" );
46 }
47 }
48
49 //----------------------------------------------------------------------------
51 //----------------------------------------------------------------------------
53 {
54 }
55
56 //----------------------------------------------------------------------------
58 //----------------------------------------------------------------------------
59 virtual FilePlugIn* CreateFile(const std::string& url)
60 {
61 std::unique_ptr<Recorder> ptr( new Recorder() );
62 if( !ptr->IsValid() )
63 return nullptr;
64 return static_cast<FilePlugIn*>( ptr.release() );
65 }
66
67 //----------------------------------------------------------------------------
69 //----------------------------------------------------------------------------
70 virtual FileSystemPlugIn* CreateFileSystem(const std::string& url)
71 {
72 Log* log = DefaultEnv::GetLog();
73 log->Error(1, "FileSystem plugin implementation not supported");
74 return static_cast<FileSystemPlugIn*>(0);
75 }
76};
77
78} // namespace xrdcl_proxy
static Log * GetLog()
Get default log.
An interface for file plug-ins.
Definition XrdClPlugInInterface.hh:39
An interface for file plug-ins.
Definition XrdClPlugInInterface.hh:284
Handle diagnostics.
Definition XrdClLog.hh:101
void Error(uint64_t topic, const char *format,...)
Report an error.
Plugin factory.
Definition XrdClPlugInInterface.hh:549
XrdCl recorder plug-in factory.
Definition XrdClRecorderPlugin.hh:33
RecorderFactory(const std::map< std::string, std::string > *config)
Definition XrdClRecorderPlugin.hh:40
virtual FilePlugIn * CreateFile(const std::string &url)
Create a file plug-in for the given URL.
Definition XrdClRecorderPlugin.hh:59
virtual FileSystemPlugIn * CreateFileSystem(const std::string &url)
Create a file system plug-in for the given URL.
Definition XrdClRecorderPlugin.hh:70
virtual ~RecorderFactory()
Destructor.
Definition XrdClRecorderPlugin.hh:52
Definition XrdClRecorder.hh:43
static void SetOutput(const std::string &cfgpath)
Definition XrdClRecorder.hh:226
Definition XrdClAction.hh:34