]> git.tdb.fi Git - builder.git/blobdiff - source/copy.h
Big rewrite for a more tool-centric approach
[builder.git] / source / copy.h
index 445de7bb9841433d573f60ca5c02794667de75de..6150fadfefa660c287d8f2a850da098489f51893 100644 (file)
@@ -1,42 +1,38 @@
-/* $Id$
-
-This file is part of builder
-Copyright © 2006-2007 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef COPY_H_
 #define COPY_H_
 
 #include <msp/core/thread.h>
 #include <msp/fs/path.h>
-#include "internalaction.h"
+#include "internaltask.h"
+#include "tool.h"
 
-class Package;
+class Install;
 
 /**
 Copies a file to another place.  Used by the Install target.
 */
-class Copy: public InternalAction
+class Copy: public Tool
 {
-public:
-       Copy(Builder &, const Package &, const Msp::FS::Path &, const Msp::FS::Path &);
 private:
        /**
        A worker thread that actually does the data transfer.
        */
-       class Worker: public InternalAction::Worker
+       class Worker: public InternalTask::Worker
        {
-       public:
-               Worker(Copy &);
        private:
-               Copy &copy;
+               const Install &target;
 
-               void main();
+       public:
+               Worker(const Install &);
+       private:
+               virtual void main();
        };
 
-       Msp::FS::Path src;
-       Msp::FS::Path dest;
+public:
+       Copy(Builder &);
+
+       virtual Target *create_target(const std::list<Target *> &, const std::string &) const;
+       virtual Task *run(const Target &) const;
 };
 
 #endif