10 #ifndef WRENCH_WORKUNIT_H
11 #define WRENCH_WORKUNIT_H
40 std::shared_ptr<StandardJob> job,
42 std::vector<std::tuple<WorkflowFile *, std::shared_ptr<FileLocation>, std::shared_ptr<FileLocation>>> pre_file_copies,
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);
48 static void addDependency(std::shared_ptr<Workunit> parent, std::shared_ptr<Workunit> child);
50 static std::set<std::shared_ptr<Workunit>> createWorkunits(std::shared_ptr<StandardJob> job);
52 std::shared_ptr<StandardJob> getJob();
55 std::shared_ptr<StandardJob> job;
58 std::set<std::shared_ptr<Workunit>> children;
60 unsigned long num_pending_parents;
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;
86 #endif //WRENCH_WORKUNIT_H