string _group,
unsigned long _size,
unsigned long long _modified_date,
- string _name )
+ string _name,
+ unsigned long long _last_backup )
: filetype( _type ),
permissions( _permissions ),
username( _user ),
groupname( _group ),
filesize( _size ),
modified_date( _modified_date ),
- filename( _name ) {}
+ filename( _name ),
+ last_backup_date( _last_backup )
+{}
+#ifndef FILEDATA_H
+#define FILEDATA_H
+
#include <string>
class FileData {
std::string,
unsigned long,
unsigned long long,
- std::string
+ std::string,
+ unsigned long long = 0
);
+ char getFileType() const { return filetype; }
+
+ const std::string &getFileName() const { return filename; }
+
private:
FileData();
FileData( const FileData & );
unsigned long long last_backup_date;
};
+
+class FileDataPtrCmp {
+ public:
+
+ bool operator()( const FileData *a, const FileData *b ) {
+ return cmp( a->getFileName(), b->getFileName() );
+ }
+ private:
+ std::less<std::string> cmp;
+};
+
+#endif
#include <string>
#include <vector>
#include <algorithm>
+#include <set>
#include <sqlite3.h>
+#include "filedata.hpp"
+
using namespace std;
vector<string> split( const string &line, char c, int limit = -1 ) {
}
int main() {
-// string file_string;
-// do {
-// file_string.clear();
-// for( int c = cin.get(); 0 != c && ! cin.eof(); c = cin.get() ) {
-// file_string.push_back( c );
-// }
-// if( 0 != file_string.size() ) {
-// // Example entry
-// // type perms user group size datemodified name (7 total)
-// // f 0600 cnb cnb 424 20051015205340 ./.git/index
-// vector<string> values = split( file_string, ' ', 7 );
-// }
-// } while( ! cin.eof() );
+ string file_string;
+ set<FileData*,FileDataPtrCmp> current_files;
+
+ // Parse the list of files on stdin
+ do {
+ file_string.clear();
+ for( int c = cin.get(); 0 != c && ! cin.eof(); c = cin.get() ) {
+ file_string.push_back( c );
+ }
+ if( 0 != file_string.size() ) {
+ // Example entry
+ // type perms user group size datemodified name (7 total)
+ // f 0600 cnb cnb 424 20051015205340 ./.git/index
+ vector<string> vals = split( file_string, ' ', 7 );
+ current_files.insert( new FileData( vals[0][0],
+ vals[1],
+ vals[2],
+ vals[3],
+ atoi( vals[4].c_str() ),
+ atoi( vals[5].c_str() ),
+ vals[6]) );
+ }
+ } while( ! cin.eof() );
- sql_experimenting();
+ set<FileData*,FileDataPtrCmp> previous_files;
}