add PieceTable::add_piece_descriptor() and set up start/end descriptors

This commit is contained in:
Josh Holtrop 2016-07-18 22:01:33 -04:00
parent b30b6eb202
commit 793bc46293
2 changed files with 15 additions and 0 deletions

View File

@ -4,4 +4,7 @@ PieceTable::PieceTable(const uint8_t * file_buffer, unsigned long file_buffer_si
{
m_file_buffer = file_buffer;
m_file_buffer_size = file_buffer_size;
m_piece_descriptors[PIECE_DESCRIPTOR_INDEX_START].next = PIECE_DESCRIPTOR_INDEX_END;
m_piece_descriptors[PIECE_DESCRIPTOR_INDEX_END].prev = PIECE_DESCRIPTOR_INDEX_START;
m_piece_descriptor_index = 2u;
}

View File

@ -4,6 +4,9 @@
#include <stdint.h>
#include "PagedBuffer.h"
#define PIECE_DESCRIPTOR_INDEX_START 0u
#define PIECE_DESCRIPTOR_INDEX_END 1u
class PieceTable
{
public:
@ -27,9 +30,18 @@ public:
PieceTable(const uint8_t * file_buffer, unsigned long file_buffer_size);
PieceDescriptor & add_piece_descriptor()
{
return m_piece_descriptors[m_piece_descriptor_index++];
}
protected:
const uint8_t * m_file_buffer;
unsigned long m_file_buffer_size;
/** Next available piece descriptor index. */
uint32_t m_piece_descriptor_index;
PagedBuffer<uint8_t> m_append_buffer;
PagedBuffer<PieceDescriptor> m_piece_descriptors;
PagedBuffer<ChangeDescriptor> m_change_descriptors;