11 #ifndef WRENCH_STORAGESERVICE_H 12 #define WRENCH_STORAGESERVICE_H 17 #include <wrench/workflow/job/StandardJob.h> 19 #include "wrench/services/Service.h" 20 #include "wrench/workflow/execution_events/FailureCause.h" 30 class FileRegistryService;
45 virtual double getFreeSpace();
47 double getTotalSpace();
51 virtual bool lookupFile(
WorkflowFile *file, std::string dst_dir);
62 virtual void readFile(
WorkflowFile *file, std::string src_dir);
64 virtual void writeFile(
WorkflowFile *file, std::string dst_dir);
68 virtual bool lookupFile(
WorkflowFile *file, WorkflowJob*);
76 virtual void initiateFileCopy(std::string answer_mailbox,
84 virtual void readFile(
WorkflowFile *file, WorkflowJob* job);
86 virtual void initiateFileRead(std::string mailbox_that_should_receive_file_content,
WorkflowFile *file, std::string src_dir);
90 virtual void writeFile(
WorkflowFile *file, WorkflowJob* job);
92 static void readFiles(std::set<WorkflowFile *> files,
93 std::map<WorkflowFile *, StorageService *> file_locations,
95 std::set<WorkflowFile*>& files_in_scratch,
96 WorkflowJob* job =
nullptr);
98 static void writeFiles(std::set<WorkflowFile *> files,
99 std::map<WorkflowFile *, StorageService *> file_locations,
101 std::set<WorkflowFile*>& files_in_scratch,
102 WorkflowJob* job =
nullptr);
104 static void deleteFiles(std::set<WorkflowFile *> files,
105 std::map<WorkflowFile *, StorageService *> file_locations,
109 const std::string &service_name,
110 const std::string &data_mailbox_name_prefix,
122 void removeFileFromStorage(
WorkflowFile *, std::string);
125 std::map<std::string, std::set<WorkflowFile *>> stored_files;
129 double occupied_space = 0;
142 static void writeOrReadFiles(FileOperation action, std::set<WorkflowFile *> files,
143 std::map<WorkflowFile *, StorageService *> file_locations,
144 StorageService *default_storage_service, std::set<WorkflowFile*>& files_in_scratch,
157 #endif //WRENCH_STORAGESERVICE_H A service that can be added to the simulation and that can be used by a WMS when executing a workflow...
Definition: Service.h:26
A data file used/produced by a WorkflowTask in a Workflow.
Definition: WorkflowFile.h:26
A class that provides basic simulation methods.
Definition: Simulation.h:34
A file registry service (a.k.a. replica catalog) that holds a database of which files are available a...
Definition: FileRegistryService.h:33
The storage service base class.
Definition: StorageService.h:35
Definition: TerminalOutput.cpp:15