Just a regular commit
authorCarl N Baldwin <cnb@plane.(none)>
Mon, 17 Oct 2005 03:24:29 +0000 (21:24 -0600)
committerCarl N Baldwin <cnb@plane.(none)>
Mon, 17 Oct 2005 03:24:29 +0000 (21:24 -0600)
filedata.cpp
filedata.hpp
main.cc

index 44b286001114da1fb65ca41de207f188dbd8cc20..c66dadcd4f7e72dd51542e3b561dc12d3f856664 100644 (file)
@@ -10,11 +10,14 @@ FileData::FileData( char               _type,
                     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 )
+{}
index 86e5b0ebf3629137ccdf830b8c1f5591b63550bf..123ef86fe42453beb4a980a91b77165b5733c155 100644 (file)
@@ -1,3 +1,6 @@
+#ifndef FILEDATA_H
+#define FILEDATA_H
+
 #include <string>
 
 class FileData {
@@ -9,9 +12,14 @@ 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 & );
@@ -26,3 +34,15 @@ class 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
diff --git a/main.cc b/main.cc
index dbd96a0c0f56b7fb3b947a3687ff1f43dfe6cb73..8ffd418cc9ec289ae0ab8dc8eaa33dc23ad1ed3c 100644 (file)
--- a/main.cc
+++ b/main.cc
@@ -3,9 +3,12 @@
 #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 ) {
@@ -58,19 +61,29 @@ void sql_experimenting() {
 }
 
 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;
 }