X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=main.cc;fp=main.cc;h=c930155cae77a6ec538d9f90511da1efd0ee3b1d;hb=302830c3b46d571d80b378fe91060a4a29e87d63;hp=e07c7ee28c3c70fa0cb9fa1d151fda7c43a05a45;hpb=3c9f7ebe59658ae9e45267bf01782a0864c77d48;p=backups%2F.git diff --git a/main.cc b/main.cc index e07c7ee..c930155 100644 --- a/main.cc +++ b/main.cc @@ -28,6 +28,7 @@ vector split( const string &line, char c, int limit = -1 ) { return out; } +// Callback function for getting files from the database int populate_set( void *files_v, int, char **vals, char ** ) { file_set *files = reinterpret_cast( files_v ); files->insert( new FileData( vals[0][0], @@ -89,4 +90,26 @@ int main() { for( file_set::iterator i = previous_files.begin(); i != previous_files.end(); ++i ) { cout << (*i)->getFileName() << endl; } + + // Now divide the two sets into three sets (union and set differences) + FileDataPtrCmp cmp; + + file_set new_set; + set_difference( current_files.begin(), current_files.end(), + previous_files.begin(), previous_files.end(), + inserter( new_set, new_set.begin() ), + cmp ); + + file_set deleted_set; + set_difference( previous_files.begin(), previous_files.end(), + current_files.begin(), current_files.end(), + inserter( deleted_set, deleted_set.begin() ), + cmp ); + + // previous_files *should* definitely be the first set here + file_set common_set; + set_difference( previous_files.begin(), previous_files.end(), + current_files.begin(), current_files.end(), + inserter( common_set, common_set.begin() ), + cmp ); }