19 uint64_t min_chunk_size,
20 uint64_t avg_chunk_size,
21 uint64_t max_chunk_size,
26 bool has_legacy_bulk_chunk)
28 , compression_algorithm_(compression_algorithm)
29 , hash_algorithm_(hash_algorithm)
30 , hash_suffix_(hash_suffix)
31 , has_legacy_bulk_chunk_(has_legacy_bulk_chunk)
33 , may_have_chunks_(may_have_chunks)
34 , chunk_detector_(min_chunk_size, avg_chunk_size, max_chunk_size)
35 , bulk_hash_(hash_algorithm)
38 int retval = pthread_mutex_init(&
lock_, NULL);
45 pthread_mutex_destroy(&
lock_);
70 : file_item_(file_item)
73 , is_bulk_chunk_(false)
74 , upload_handle_(NULL)
113 : allocator_(allocator)
114 , type_(kBlockHollow)
125 : allocator_(allocator)
126 , type_(kBlockHollow)
190 const unsigned char *data,
200 memcpy(
data_, data, size);
234 uint32_t nbytes = std::min(remaining, count);
235 memcpy(
data_ + size_, buf, nbytes);
void RegisterChunk(const FileChunk &file_chunk)
void MakeDataMove(BlockItem *other)
shash::ContextPtr hash_ctx_
void SetChunkItem(ChunkItem *item)
FileItem(IngestionSource *source, uint64_t min_chunk_size=4 *1024 *1024, uint64_t avg_chunk_size=8 *1024 *1024, uint64_t max_chunk_size=16 *1024 *1024, zlib::Algorithms compression_algorithm=zlib::kZlibDefault, shash::Algorithms hash_algorithm=shash::kSha1, shash::Suffix hash_suffix=shash::kSuffixNone, bool may_have_chunks=true, bool has_legacy_bulk_chunk=false)
shash::Algorithms hash_algorithm()
void * Malloc(unsigned size)
unsigned char hash_ctx_buffer_[shash::kMaxContextSize]
zlib::Compressor * GetCompressor()
const shash::Any & content_hash() const
BlockItem(ItemAllocator *allocator)
assert((mem||(size==0))&&"Out Of Memory")
void SetFileItem(FileItem *item)
ChunkItem(FileItem *file_item, uint64_t offset)
void Init(ContextPtr context)
static Compressor * Construct(const Algorithms ¶m)
const char kSuffixPartial
void MakeData(uint32_t capacity)
atomic_int64 nchunks_in_fly_
shash::Suffix hash_suffix()
unsigned GetContextSize(const Algorithms algorithm)
void PushBack(const Item &item)
static atomic_int64 managed_bytes_
zlib::Algorithms compression_algorithm()
ItemAllocator * allocator_
atomic_int32 is_fully_chunked_
void MakeDataCopy(const unsigned char *data, uint32_t size)
uint32_t Write(void *buf, uint32_t count)
UniquePtr< zlib::Compressor > compressor_