1
#ifndef __ARC_DATAPOINTXROOTD_H__
2
#define __ARC_DATAPOINTXROOTD_H__
6
#include <arc/data/DataPointDirect.h>
11
* xrootd is a protocol for data access across large scale storage clusters.
12
* More information can be found at http://xrootd.slac.stanford.edu/
14
* This class is a loadable module and cannot be used directly. The DataHandle
15
* class loads modules at runtime and should be used instead of this.
18
: public DataPointDirect {
21
DataPointXrootd(const URL& url, const UserConfig& usercfg);
22
virtual ~DataPointXrootd();
23
static Plugin* Instance(PluginArgument *arg);
24
virtual DataStatus StartReading(DataBuffer& buffer);
25
virtual DataStatus StartWriting(DataBuffer& buffer,
26
DataCallback *space_cb = NULL);
27
virtual DataStatus StopReading();
28
virtual DataStatus StopWriting();
29
virtual DataStatus Check();
30
virtual DataStatus Stat(FileInfo& file, DataPointInfoType verb = INFO_TYPE_ALL);
31
virtual DataStatus List(std::list<FileInfo>& files, DataPointInfoType verb = INFO_TYPE_ALL);
32
virtual DataStatus Remove();
35
/// thread functions for async read/write
36
static void read_file_start(void* arg);
37
static void write_file_start(void* arg);
41
/// must be called everytime a new XrdClient is created
44
SimpleCondition transfer_cond;
53
#endif /* __ARC_DATAPOINTXROOTD_H__ */