ARC SDK
DataMover.h
1 // -*- indent-tabs-mode: nil -*-
2 
3 #ifndef __ARC_DATAMOVER_H__
4 #define __ARC_DATAMOVER_H__
5 
6 #include <list>
7 #include <string>
8 
9 #include <arc/data/FileCache.h>
10 #include <arc/data/DataPoint.h>
11 #include <arc/data/DataSpeed.h>
12 #include <arc/data/DataStatus.h>
13 
14 namespace Arc {
15 
16  class Logger;
17  class URLMap;
18 
20 
25  class DataMover {
26  private:
27  bool be_verbose;
28  bool force_secure;
29  bool force_passive;
30  bool force_registration;
31  bool do_checks;
32  std::string verbose_prefix;
33  bool do_retries;
34  unsigned long long int default_min_speed;
35  time_t default_min_speed_time;
36  unsigned long long int default_min_average_speed;
37  time_t default_max_inactivity_time;
38  DataSpeed::show_progress_t show_progress;
39  std::string preferred_pattern;
40  bool cancelled;
43  Glib::Mutex lock_;
44  static Logger logger;
45  public:
47 
52  typedef void (*callback)(DataMover* mover, DataStatus status, void* arg);
54  DataMover();
56  ~DataMover();
58 
76  DataStatus Transfer(DataPoint& source, DataPoint& destination,
77  FileCache& cache, const URLMap& map,
78  callback cb = NULL, void *arg = NULL,
79  const char *prefix = NULL);
81 
105  DataStatus Transfer(DataPoint& source, DataPoint& destination,
106  FileCache& cache, const URLMap& map,
107  unsigned long long int min_speed,
108  time_t min_speed_time,
109  unsigned long long int min_average_speed,
110  time_t max_inactivity_time,
111  callback cb = NULL, void *arg = NULL,
112  const char *prefix = NULL);
114 
122  DataStatus Delete(DataPoint& url, bool errcont = false);
124  void Cancel();
126  bool verbose();
128  void verbose(bool);
130 
133  void verbose(const std::string& prefix);
135  bool retry();
137  void retry(bool);
139  void secure(bool);
141  void passive(bool);
143  void force_to_meta(bool);
145  bool checks();
147 
152  void checks(bool v);
154 
160  void set_default_min_speed(unsigned long long int min_speed,
161  time_t min_speed_time) {
162  default_min_speed = min_speed;
163  default_min_speed_time = min_speed_time;
164  }
166 
172  void set_default_min_average_speed(unsigned long long int min_average_speed) {
173  default_min_average_speed = min_average_speed;
174  }
176 
181  void set_default_max_inactivity_time(time_t max_inactivity_time) {
182  default_max_inactivity_time = max_inactivity_time;
183  }
186  show_progress = func;
187  }
189 
198  void set_preferred_pattern(const std::string& pattern) {
199  preferred_pattern = pattern;
200  }
201  };
202 
203 } // namespace Arc
204 
205 #endif // __ARC_DATAMOVER_H__