X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=filedata.hpp;h=f98b520e5e8d18eef6d2bf79b3a0c58ab181e0eb;hb=HEAD;hp=9d71f8c7905bacef50e0f094e183758c33b9987e;hpb=7f34d8dde0bb8e00ab0955a977899f6104796c29;p=backups%2F.git diff --git a/filedata.hpp b/filedata.hpp index 9d71f8c..f98b520 100644 --- a/filedata.hpp +++ b/filedata.hpp @@ -4,20 +4,12 @@ #include #include #include +#include class FileData { public: // Construct a FileData object with default values FileData() {} - FileData( char, - std::string, - std::string, - std::string, - unsigned long long, - unsigned long long, - unsigned long long, - std::string - ); char getFileType() const { return filetype; } const std::string &getPermissions() const { return permissions; } @@ -37,6 +29,30 @@ class FileData { void setFileName( const std::string &arg ) { filename = arg; } void setLastBackupDate( unsigned long long arg ) { last_backup_date = arg; } + struct LastBackupCmp { + bool operator()( const FileData *a, const FileData *b ) { + return a->getLastBackupDate() < b->getLastBackupDate(); + } + }; + + struct SizeCmp { + bool operator()( const FileData *a, const FileData *b ) { + return a->getFileSize() < b->getFileSize(); + } + }; + + struct NameCmp { + bool operator()( const FileData *a, const FileData *b ) { + return cmp( a->getFileName(), b->getFileName() ); + } + private: + std::less cmp; + }; + + static const LastBackupCmp lastbackupcmp; + static const SizeCmp sizecmp; + static const NameCmp namecmp; + private: FileData( const FileData & ); @@ -50,33 +66,15 @@ class FileData { std::string filename; }; -std::ostream &operator<<( const FileData *d, std::ostream &o ); +std::ostream &operator<<( std::ostream &o, const FileData *d ); std::istream &operator>>( std::istream &i, FileData *d ); -std::ostream &operator<<( const FileData &d, std::ostream &o ); +std::ostream &operator<<( std::ostream &o, const FileData &d ); std::istream &operator>>( std::istream &i, FileData &d ); -struct FileDataLastBackupCmp { - bool operator()( const FileData *a, const FileData *b ) { - return a->getLastBackupDate() < b->getLastBackupDate(); - } -}; - -struct FileDataSizeCmp { - bool operator()( const FileData *a, const FileData *b ) { - return a->getFileSize() < b->getFileSize(); - } -}; - -struct FileDataNameCmp { - bool operator()( const FileData *a, const FileData *b ) { - return cmp( a->getFileName(), b->getFileName() ); - } - private: - std::less cmp; -}; +bool needs_backup( const FileData *before, const FileData *after ); -typedef std::set file_set; -typedef std::vector file_vector; +typedef std::set file_set; +typedef std::vector file_vector; #endif