]> git.tdb.fi Git - builder.git/blobdiff - source/lib/task.cpp
Remove the include path for used local components
[builder.git] / source / lib / task.cpp
index e72a7415de285767ee93369051fb384113b8d2a1..ed79e56c68621a31dbefa9638fb64f88efe54cc0 100644 (file)
@@ -1,14 +1,16 @@
 #include <msp/fs/dir.h>
 #include <msp/fs/stat.h>
 #include <msp/fs/utils.h>
+#include <msp/time/utils.h>
+#include "filetarget.h"
 #include "task.h"
 
 using namespace std;
 using namespace Msp;
 
-void Task::add_file(const FS::Path &f)
+void Task::add_target(const FileTarget &t)
 {
-       files.push_back(f);
+       targets.push_back(&t);
 }
 
 void Task::set_unlink(bool u)
@@ -18,8 +20,11 @@ void Task::set_unlink(bool u)
 
 void Task::prepare()
 {
-       for(const FS::Path &f: files)
+       start_time = Time::now();
+
+       for(const FileTarget *t: targets)
        {
+               const FS::Path &f = t->get_path();
                if(FS::exists(f))
                {
                        // If the file exists, the directory it's in must exist too
@@ -33,3 +38,10 @@ void Task::prepare()
                }
        }
 }
+
+void Task::finished(bool success)
+{
+       if(!duration && start_time)
+               duration = Time::now()-start_time;
+       signal_finished.emit(success);
+}