-/* Cumulus: Smart Filesystem Backup to Dumb Servers
- *
- * Copyright (C) 2008 The Regents of the University of California
- * Written by Michael Vrable <mvrable@cs.ucsd.edu>
+/* Cumulus: Efficient Filesystem Backup to the Cloud
+ * Copyright (C) 2008 The Cumulus Developers
+ * See the AUTHORS file for a list of contributors.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include <arpa/inet.h>
#include "subfile.h"
-#include "chunk.h"
-#include "sha1.h"
+#include "third_party/chunk.h"
+#include "third_party/sha1.h"
using std::list;
using std::map;
free(packed);
}
+void Subfile::store_analyzed_signatures(ObjectReference ref)
+{
+ if (analyzed_len >= 16384)
+ store_block_signatures(ref, new_block_summary);
+}
+
/* Compute an incremental representation of the most recent block analyzed. */
enum subfile_item_type { SUBFILE_COPY, SUBFILE_NEW };
// No data was matched. The entire block can be written out as is into a
// new object, and the new_block_summary used to save chunk signatures.
if (!matched_old) {
- SHA1Checksum block_hash;
- block_hash.process(analyzed_buf, analyzed_len);
- string block_csum = block_hash.checksum_str();
-
- o->set_data(analyzed_buf, analyzed_len);
+ o->set_age(block_age);
+ o->set_data(analyzed_buf, analyzed_len, NULL);
o->write(tss);
ObjectReference ref = o->get_ref();
- db->StoreObject(ref, block_csum, analyzed_len, block_age);
- if (analyzed_len >= 16384)
- store_block_signatures(ref, new_block_summary);
- ref.set_range(0, analyzed_len, true);
+ store_analyzed_signatures(ref);
refs.push_back(ref);
delete o;
return refs;
string block_csum = block_hash.checksum_str();
o->set_group("data");
- o->set_data(literal_buf, new_data);
+ o->set_data(literal_buf, new_data, NULL);
o->write(tss);
ObjectReference ref = o->get_ref();
for (i = items.begin(); i != items.end(); ++i) {
}
}
- db->StoreObject(ref, block_csum, new_data, 0.0);
+ //db->StoreObject(ref, 0.0);
block_summary summary;
summary.ref = ref;