]> git.tdb.fi Git - builder.git/blobdiff - source/copy.h
Make symlink a feature of the Install target rather than a target on its own
[builder.git] / source / copy.h
index 4e232166c0883c1e18575b6a731872c3dead685f..bc4c173b140be542a47f35ff91282c7a91e3e9cd 100644 (file)
@@ -2,41 +2,36 @@
 #define COPY_H_
 
 #include <msp/core/thread.h>
-#include <msp/path/path.h>
-#include "action.h"
+#include <msp/fs/path.h>
+#include "internalaction.h"
 
 class Package;
 
 /**
 Copies a file to another place.  Used by the Install target.
 */
-class Copy: public Action
+class Copy: public InternalAction
 {
-public:
-       Copy(Builder &, const Package &, const Msp::Path::Path &, const Msp::Path::Path &);
-       int check();
-       ~Copy();
 private:
        /**
        A worker thread that actually does the data transfer.
        */
-       class Worker: public Msp::Thread
+       class Worker: public InternalAction::Worker
        {
        public:
-               Worker(Copy &i): copy(i), done(false), error(false) { launch(); }
-               bool get_done() const  { return done; }
-               bool get_error() const { return error; }
+               Worker(Copy &);
        private:
                Copy &copy;
-               bool done;
-               bool error;
 
                void main();
        };
 
-       Msp::Path::Path src;
-       Msp::Path::Path dest;
-       Worker *worker;
+       Msp::FS::Path src;
+       Msp::FS::Path dest;
+       Msp::FS::Path link;
+
+public:
+       Copy(Builder &, const Package &, const Msp::FS::Path &, const Msp::FS::Path &, const Msp::FS::Path & =Msp::FS::Path());
 };
 
 #endif