]> git.tdb.fi Git - builder.git/blobdiff - source/tar.h
Refactor InternalTask to take a functor
[builder.git] / source / tar.h
index 63652bb544b78d17630c59fece0005487ca96495..fa4a4d6070100098f3da70520caa7efa696cac4f 100644 (file)
@@ -1,38 +1,21 @@
-/* $Id$
-
-This file is part of builder
-Copyright © 2007, 2009  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef TAR_H_
 #define TAR_H_
 
-#include <msp/core/thread.h>
-#include "internalaction.h"
-#include "misc.h"
+#include "tool.h"
 
 class TarBall;
 
-class Tar: public InternalAction
+class Tar: public Tool
 {
-private:
-       class Worker: public InternalAction::Worker
-       {
-       public:
-               Worker(Tar &);
-       private:
-               Tar &tar;
-
-               void main();
-               void store_number(char *, unsigned, unsigned);
-       };
+public:
+       Tar(Builder &);
 
-       const TarBall &tarball;
-       StringList files;
+       Target *create_target(const std::vector<Target *> &, const std::string &) override;
+       Task *run(const Target &) const override;
 
-public:
-       Tar(Builder &, const TarBall &);
+private:
+       static bool _run(const TarBall &);
+       static void store_number(char *, unsigned, unsigned);
 };
 
 #endif