X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=filedata.cpp;h=81ebb588058c503664d9d8b1618d17b684cdd0bb;hb=refs%2Fheads%2Fmaster;hp=31078ea9878c8c2068a08176812f85e5e5b25ca5;hpb=831e1711cdf96ccd26203aec08a46e5c09bca3bd;p=backups%2F.git diff --git a/filedata.cpp b/filedata.cpp index 31078ea..81ebb58 100644 --- a/filedata.cpp +++ b/filedata.cpp @@ -25,6 +25,10 @@ vector split( const string &line, char c, int limit = -1 ) { return out; } +const FileData::LastBackupCmp FileData::lastbackupcmp = FileData::LastBackupCmp(); +const FileData::SizeCmp FileData::sizecmp = FileData::SizeCmp(); +const FileData::NameCmp FileData::namecmp = FileData::NameCmp(); + ostream &operator<<( ostream &o, const FileData *d) { return operator<<( o, *d ); } @@ -75,3 +79,17 @@ istream &operator>>( istream &i, FileData &d ) { return i; } + +bool needs_backup( const FileData *before, const FileData *after ) { + assert( before->getFileName() == after->getFileName() ); + + if( after->getLastBackupDate() < after->getModifiedDate() ) return true; + + if( before->getFileType() != after->getFileType() ) return true; + if( before->getPermissions() != after->getPermissions() ) return true; + if( before->getUserName() != after->getUserName() ) return true; + if( before->getGroupName() != after->getGroupName() ) return true; + if( before->getFileSize() != after->getFileSize() ) return true; + + return false; +}