WRENCH  1.10
Cyberinfrastructure Simulation Workbench
Overview Installation Getting Started WRENCH 101 WRENCH 102
Workunit.h
1 
10 #ifndef WRENCH_WORKUNIT_H
11 #define WRENCH_WORKUNIT_H
12 
13 
14 #include <tuple>
15 #include <set>
16 #include <map>
17 #include <vector>
18 #include <memory>
19 
20 namespace wrench {
21 
22  class StandardJob;
23  class WorkflowFile;
24  class StorageService;
25  class WorkflowTask;
26  class FileLocation;
27 
28  /***********************/
30  /***********************/
31 
35  class Workunit {
36 
37  public:
38 
39  Workunit(
40  std::shared_ptr<StandardJob> job,
41  double sleep_time,
42  std::vector<std::tuple<WorkflowFile *, std::shared_ptr<FileLocation>, std::shared_ptr<FileLocation>>> pre_file_copies,
43  WorkflowTask *task,
44  std::map<WorkflowFile *, std::vector<std::shared_ptr<FileLocation>>> file_locations,
45  std::vector<std::tuple<WorkflowFile *, std::shared_ptr<FileLocation>, std::shared_ptr<FileLocation>>> post_file_copies,
46  std::vector<std::tuple<WorkflowFile *, std::shared_ptr<FileLocation>>> cleanup_file_deletions);
47 
48  static void addDependency(std::shared_ptr<Workunit> parent, std::shared_ptr<Workunit> child);
49 
50  static std::set<std::shared_ptr<Workunit>> createWorkunits(std::shared_ptr<StandardJob> job);
51 
52  std::shared_ptr<StandardJob> getJob();
53 
55  std::shared_ptr<StandardJob> job;
56 
58  std::set<std::shared_ptr<Workunit>> children;
60  unsigned long num_pending_parents;
61 
63  double sleep_time;
65  std::vector<std::tuple<WorkflowFile *, std::shared_ptr<FileLocation>, std::shared_ptr<FileLocation>>> pre_file_copies;
67  WorkflowTask *task = nullptr;
69  std::map<WorkflowFile *, std::vector<std::shared_ptr<FileLocation>>> file_locations;
71  std::vector<std::tuple<WorkflowFile *, std::shared_ptr<FileLocation>, std::shared_ptr<FileLocation>>> post_file_copies;
73  std::vector<std::tuple<WorkflowFile *, std::shared_ptr<FileLocation>>> cleanup_file_deletions;
74 
75 
76  ~Workunit();
77  };
78 
79  /***********************/
81  /***********************/
82 
83 };
84 
85 
86 #endif //WRENCH_WORKUNIT_H
wrench
Definition: Alarm.cpp:20