using namespace std;
static const unsigned int bytes_in_block = 0x800;
-static const char * dbname = "/var/lib/backups/backups.db";
+static const char * dbname = "/var/lib/backups/backups.db.tmp";
unsigned long long read_time( istream &i ) {
string date_string;
if( blocksize <= space ) {
space -= blocksize;
- out = *begin;
+ *out = *begin;
++out;
} else {
// We missed a file that should be included so the backup is not complete
template<class SET>
void partition_sets( const SET ¤t, const SET &old,
SET &added, SET &common, SET &old_common, SET &deleted ) {
- FileDataNameCmp cmp;
-
set_difference( current.begin(), current.end(),
old.begin(), old.end(),
inserter( added, added.begin() ),
- cmp );
+ FileData::namecmp );
set_difference( old.begin(), old.end(),
current.begin(), current.end(),
inserter( deleted, deleted.begin() ),
- cmp );
+ FileData::namecmp );
set_intersection( current.begin(), current.end(),
old.begin(), old.end(),
inserter( common, common.begin() ),
- cmp );
+ FileData::namecmp );
set_intersection( old.begin(), old.end(),
common.begin(), common.end(),
inserter( old_common, old_common.begin() ),
- cmp );
+ FileData::namecmp );
}
template<class INT>
file_vector backups_s;
copy( backups.begin(), backups.end(), back_inserter( backups_s ) );
- FileDataSizeCmp sizecmp;
- sort( backups_s.rbegin(), backups_s.rend(), sizecmp );
+ sort( backups_s.rbegin(), backups_s.rend(), FileData::sizecmp );
file_set final;
unsigned long long space = 0x100000000ULL;
// collection left with actual content.
if( 0 != space ) {
file_vector leftovers;
- FileDataNameCmp cmp;
set_difference( current.begin(), current.end(),
final.begin(), final.end(),
back_inserter( leftovers ),
- cmp );
+ FileData::namecmp );
- FileDataLastBackupCmp lastbackupcmp;
- // Achieve 'last back date then by filesize' by first sorting by filesizing
+ // Achieve 'last backup date then by filesize' by first sorting by filesize
// and then running stable sort by last backup date.
- sort( leftovers.rbegin(), leftovers.rend(), sizecmp );
- stable_sort( leftovers.begin(), leftovers.end(), lastbackupcmp );
+ sort( leftovers.rbegin(), leftovers.rend(), FileData::sizecmp );
+ stable_sort( leftovers.begin(), leftovers.end(), FileData::lastbackupcmp );
copy_until_full( leftovers.begin(), leftovers.end(), final_i, space );
}