2012-11-27 16:17:29 +00:00
|
|
|
/*
|
|
|
|
* TmpFiles.cc
|
|
|
|
*
|
|
|
|
* Collect and clean-up temporary files
|
|
|
|
*
|
|
|
|
* implemented by WangLu
|
|
|
|
* split off by Filodej <philodej@gmail.com>
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include <iostream>
|
2013-06-24 20:45:07 +00:00
|
|
|
#include <cstdio>
|
2013-11-22 21:39:28 +00:00
|
|
|
#include <sys/stat.h>
|
2013-06-24 20:45:07 +00:00
|
|
|
|
2012-11-26 21:38:13 +00:00
|
|
|
#include "TmpFiles.h"
|
|
|
|
#include "Param.h"
|
|
|
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
namespace pdf2htmlEX {
|
|
|
|
|
|
|
|
|
2012-11-29 13:20:26 +00:00
|
|
|
TmpFiles::TmpFiles( const Param& param )
|
2013-11-22 21:39:28 +00:00
|
|
|
: param( param )
|
2012-11-29 13:20:26 +00:00
|
|
|
{ }
|
2012-11-26 21:38:13 +00:00
|
|
|
|
|
|
|
TmpFiles::~TmpFiles()
|
2013-11-22 21:39:28 +00:00
|
|
|
{
|
2012-11-26 21:38:13 +00:00
|
|
|
clean();
|
|
|
|
}
|
|
|
|
|
2012-11-27 16:17:29 +00:00
|
|
|
void TmpFiles::add( const string & fn)
|
2012-11-26 21:38:13 +00:00
|
|
|
{
|
|
|
|
if(!param.clean_tmp)
|
|
|
|
return;
|
|
|
|
|
|
|
|
if(tmp_files.insert(fn).second && param.debug)
|
|
|
|
cerr << "Add new temporary file: " << fn << endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
void TmpFiles::clean()
|
|
|
|
{
|
|
|
|
if(!param.clean_tmp)
|
|
|
|
return;
|
|
|
|
|
|
|
|
for(auto iter = tmp_files.begin(); iter != tmp_files.end(); ++iter)
|
|
|
|
{
|
|
|
|
const string & fn = *iter;
|
|
|
|
remove(fn.c_str());
|
|
|
|
if(param.debug)
|
|
|
|
cerr << "Remove temporary file: " << fn << endl;
|
|
|
|
}
|
|
|
|
|
|
|
|
remove(param.tmp_dir.c_str());
|
|
|
|
if(param.debug)
|
|
|
|
cerr << "Remove temporary directory: " << param.tmp_dir << endl;
|
|
|
|
}
|
|
|
|
|
2013-11-22 21:39:28 +00:00
|
|
|
double TmpFiles::get_total_size() const
|
|
|
|
{
|
|
|
|
double total_size = 0;
|
|
|
|
struct _stat st;
|
|
|
|
for(auto iter = tmp_files.begin(); iter != tmp_files.end(); ++iter) {
|
|
|
|
_stat(iter->c_str(), &st);
|
|
|
|
total_size += st.st_size;
|
|
|
|
}
|
|
|
|
|
|
|
|
return total_size;
|
|
|
|
}
|
2012-11-26 21:38:13 +00:00
|
|
|
|
|
|
|
} // namespace pdf2htmlEX
|