Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
24
Src/replicant/nu/ProgressTracker.h
Normal file
24
Src/replicant/nu/ProgressTracker.h
Normal file
|
@ -0,0 +1,24 @@
|
|||
#pragma once
|
||||
#include "foundation/types.h"
|
||||
#include <map>
|
||||
#include "nu/AutoLock.h"
|
||||
|
||||
/* Helper class for managing valid chunks in non-sequential scenarios
|
||||
e.g. progressive downloading */
|
||||
|
||||
class ProgressTracker
|
||||
{
|
||||
public:
|
||||
static const uint64_t null_position;
|
||||
ProgressTracker();
|
||||
void Write(uint64_t bytes_written);
|
||||
bool Valid(uint64_t requested_position, uint64_t requested_end, uint64_t *available=0);
|
||||
bool Seek(uint64_t requested_position, uint64_t requested_end, uint64_t *new_start, uint64_t *new_end);
|
||||
void Dump();
|
||||
|
||||
typedef std::map<uint64_t, uint64_t> ChunkList;
|
||||
ChunkList chunks;
|
||||
uint64_t current_chunk;
|
||||
uint64_t current_position;
|
||||
nu::LockGuard list_guard;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue