]> git.tdb.fi Git - builder.git/blob - source/tar.h
Refactor transitive dependencies to work on all targets
[builder.git] / source / tar.h
1 #ifndef TAR_H_
2 #define TAR_H_
3
4 #include <msp/core/thread.h>
5 #include "internaltask.h"
6 #include "tool.h"
7
8 class TarBall;
9
10 class Tar: public Tool
11 {
12 private:
13         class Worker: public InternalTask::Worker
14         {
15         private:
16                 const TarBall &tarball;
17
18         public:
19                 Worker(const TarBall &);
20
21         private:
22                 virtual void main();
23                 void store_number(char *, unsigned, unsigned);
24         };
25
26 public:
27         Tar(Builder &);
28
29         virtual Target *create_target(const std::list<Target *> &, const std::string &);
30         virtual Task *run(const Target &) const;
31 };
32
33 #endif