~ubuntu-branches/ubuntu/precise/nordugrid-arc/precise

« back to all changes in this revision

Viewing changes to src/hed/dmc/xrootd/DataPointXrootd.h

  • Committer: Package Import Robot
  • Author(s): Mattias Ellert
  • Date: 2011-10-24 02:19:37 UTC
  • mfrom: (3.1.4 sid)
  • Revision ID: package-import@ubuntu.com-20111024021937-8whiie90uq2oqsok
Tags: 1.1.0-2
* Backport fixes for endian independent md5 checksum
* Filter out -Wl,-Bsymbolic-functions from default Ubuntu LDFLAGS

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __ARC_DATAPOINTXROOTD_H__
 
2
#define __ARC_DATAPOINTXROOTD_H__
 
3
 
 
4
#include <list>
 
5
 
 
6
#include <arc/data/DataPointDirect.h>
 
7
 
 
8
namespace Arc {
 
9
 
 
10
  /**
 
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/
 
13
   *
 
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.
 
16
   */
 
17
  class DataPointXrootd
 
18
    : public DataPointDirect {
 
19
 
 
20
   public:
 
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();
 
33
 
 
34
   private:
 
35
    /// thread functions for async read/write
 
36
    static void read_file_start(void* arg);
 
37
    static void write_file_start(void* arg);
 
38
    void read_file();
 
39
    void write_file();
 
40
 
 
41
    /// must be called everytime a new XrdClient is created
 
42
    void set_log_level();
 
43
 
 
44
    SimpleCondition transfer_cond;
 
45
    XrdClient* client;
 
46
    bool reading;
 
47
    bool writing;
 
48
    static Logger logger;
 
49
  };
 
50
 
 
51
} // namespace Arc
 
52
 
 
53
#endif /* __ARC_DATAPOINTXROOTD_H__ */