using namespace Msp;
Tar::Tar(Builder &b, const TarBall &t):
- Action(b),
- tarball(t),
- worker(0)
+ InternalAction(b),
+ tarball(t)
{
string basename=tarball.get_name().substr(tarball.get_name().rfind('/')+1);
announce(tarball.get_package()->get_name(), "TAR ", basename);
if(builder.get_verbose()>=2)
cout<<"Create "<<basename<<'\n';
-
+
if(!builder.get_dry_run())
worker=new Worker(*this);
}
-Tar::~Tar()
-{
- delete worker;
-}
-
-int Tar::check()
-{
- if(!worker) // True for dry run
- {
- signal_done.emit();
- return 0;
- }
-
- if(worker->get_done())
- {
- signal_done.emit();
- worker->join();
- return worker->get_error()?1:0;
- }
-
- return -1;
-}
-
Tar::Worker::Worker(Tar &t):
- tar(t),
- done(false),
- error(false)
+ tar(t)
{
launch();
}