X-Git-Url: http://git.vrable.net/?p=cumulus.git;a=blobdiff_plain;f=subfile.h;h=1a9667207f6fce12aa255891df10942719f70662;hp=e80f76ce5444e45dd17c83b49bf0cba5a5ee9f9f;hb=HEAD;hpb=26f68e9df784020f16bbc295342123b0eca7de9b diff --git a/subfile.h b/subfile.h index e80f76c..1a96672 100644 --- a/subfile.h +++ b/subfile.h @@ -1,7 +1,6 @@ -/* Cumulus: Smart Filesystem Backup to Dumb Servers - * - * Copyright (C) 2008 The Regents of the University of California - * Written by Michael Vrable +/* 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 @@ -31,10 +30,10 @@ #include #include -#include "chunk.h" #include "localdb.h" #include "ref.h" #include "store.h" +#include "third_party/chunk.h" class Subfile { public: @@ -51,6 +50,11 @@ public: // buffer until all operations referring to it are finished. void analyze_new_block(const char *buf, size_t len); + // Store the signatures for the most recently-analyzed block in the local + // database (linked to the specified object), if the block is sufficiently + // large. If signatures already exist, they will be overwritten. + void store_analyzed_signatures(ObjectReference ref); + std::list create_incremental(TarSegmentStore *tss, LbsObject *o, double block_age); @@ -58,9 +62,12 @@ public: static const int HASH_SIZE = 20; private: + std::string algorithm_name; + size_t hash_size; + struct chunk_info { - char hash[HASH_SIZE]; int offset, len; + std::string hash; }; struct block_summary { @@ -85,10 +92,6 @@ private: void index_chunks(ObjectReference ref); void free_analysis(); void store_block_signatures(ObjectReference ref, block_summary summary); - - std::string get_algorithm() { - return chunk_algorithm_name() + "/sha1"; - } }; #endif // _LBS_SUBFILE_H