]> git.tdb.fi Git - builder.git/blobdiff - source/copy.h
Add class InternalAction for actions that use a thread to do their work
[builder.git] / source / copy.h
index a6d5c51673e8fa6593bd8fddb0a0d79f608099e6..0a03ae6d2c12edb081b338b8820ae97623c81486 100644 (file)
@@ -1,33 +1,42 @@
+/* $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/path/path.h>
-#include "action.h"
+#include "internalaction.h"
 
 class Package;
 
-class Copy: public Action
+/**
+Copies a file to another place.  Used by the Install target.
+*/
+class Copy: public InternalAction
 {
 public:
        Copy(Builder &, const Package &, const Msp::Path::Path &, const Msp::Path::Path &);
-       int check();
 private:
-       class Worker: public Msp::Thread
+       /**
+       A worker thread that actually does the data transfer.
+       */
+       class Worker: public InternalAction::Worker
        {
        public:
-               Worker(Copy &i): copy(i), done(false) { launch(); }
-               bool get_done() const { return done; }
+               Worker(Copy &);
        private:
                Copy &copy;
-               bool done;
 
                void main();
        };
 
        Msp::Path::Path src;
        Msp::Path::Path dest;
-       Worker worker;
 };
 
 #endif