I think its about done
authorCarl N Baldwin <cnb@plane.(none)>
Thu, 20 Oct 2005 04:21:34 +0000 (22:21 -0600)
committerCarl N Baldwin <cnb@plane.(none)>
Thu, 20 Oct 2005 04:21:34 +0000 (22:21 -0600)
filedata.cpp
filedata.hpp
main.cc

index 2a9840a7756717aec032566d93f1fc92f16b73b4..2669b75253f354bbfb2b9440b0db0f70134c67b4 100644 (file)
@@ -43,6 +43,10 @@ vector<string> split( const string &line, char c, int limit = -1 ) {
   return out;
 }
 
+ostream &operator<<( const FileData *d, ostream &o ) {
+  return operator<<( *d, o );
+}
+
 ostream &operator<<( const FileData &d, ostream &o ) {
   o << d.getFileType()       << ' ';
   o << d.getPermissions()    << ' ';
@@ -56,6 +60,10 @@ ostream &operator<<( const FileData &d, ostream &o ) {
   return o;
 }
 
+istream &operator>>( istream &i, FileData *d ) {
+  return operator>>( i, *d );
+}
+
 istream &operator>>( istream &i, FileData &d ) {
   string file_string;
 
index 47a2690c069dc36c41dde635c86d4f6bbd5ad0b7..9d71f8c7905bacef50e0f094e183758c33b9987e 100644 (file)
@@ -50,8 +50,10 @@ class FileData {
     std::string        filename;
 };
 
-std::ostream &operator<<( const FileData &d, std::ostream &o );
+std::ostream &operator<<( const FileData *d, std::ostream &o );
+std::istream &operator>>( std::istream &i, FileData *d );
 
+std::ostream &operator<<( const FileData &d, std::ostream &o );
 std::istream &operator>>( std::istream &i, FileData &d );
 
 struct FileDataLastBackupCmp {
diff --git a/main.cc b/main.cc
index 50bf7035cea3568d2ee2634907d13acee6ea720d..079252e1ce51d62d24382a8859e33f516f323bfd 100644 (file)
--- a/main.cc
+++ b/main.cc
@@ -91,7 +91,7 @@ int main() {
 
   unsigned long long block_size = 512ULL;
 
-  bool finished = true;
+  bool complete = true;
 
   // Copy files over until full or out of files
   file_vector::reverse_iterator i = backups_bysize.rbegin();
@@ -103,7 +103,8 @@ int main() {
       bytes_available -= blocks;
       final_set.insert( *i );
     } else {
-      finished = false;
+      // We missed a file that should be included so the backup is not complete
+      complete = false;
     }
     ++i;
   }
@@ -143,9 +144,16 @@ int main() {
   }
 
   // Write the 'current' list to the dbfile
+  ofstream dbout( "test.db" );
+  copy( current.begin(), current.end(), ostream_iterator<FileData*>( dbout, "" ) );
+
   // Write the 'final_set' list to stdout
+  copy( final_set.begin(), final_set.end(), ostream_iterator<FileData*>( cout, "" ) );
 
-  // If ! finished then write a flag to /tmp
+  // If ! complete then write a flag to /tmp
+  if( ! complete ) {
+    cerr << "incomplete" << endl;
+  }
 
   // Clean-up
   for( file_set::iterator i = backed_up.begin(); i != backed_up.end(); ++i ) { delete *i; }