add PieceTable::add_piece_descriptor() and set up start/end descriptors
This commit is contained in:
parent
b30b6eb202
commit
793bc46293
@ -4,4 +4,7 @@ PieceTable::PieceTable(const uint8_t * file_buffer, unsigned long file_buffer_si
|
|||||||
{
|
{
|
||||||
m_file_buffer = file_buffer;
|
m_file_buffer = file_buffer;
|
||||||
m_file_buffer_size = file_buffer_size;
|
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;
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "PagedBuffer.h"
|
#include "PagedBuffer.h"
|
||||||
|
|
||||||
|
#define PIECE_DESCRIPTOR_INDEX_START 0u
|
||||||
|
#define PIECE_DESCRIPTOR_INDEX_END 1u
|
||||||
|
|
||||||
class PieceTable
|
class PieceTable
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -27,9 +30,18 @@ public:
|
|||||||
|
|
||||||
PieceTable(const uint8_t * file_buffer, unsigned long file_buffer_size);
|
PieceTable(const uint8_t * file_buffer, unsigned long file_buffer_size);
|
||||||
|
|
||||||
|
PieceDescriptor & add_piece_descriptor()
|
||||||
|
{
|
||||||
|
return m_piece_descriptors[m_piece_descriptor_index++];
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const uint8_t * m_file_buffer;
|
const uint8_t * m_file_buffer;
|
||||||
unsigned long m_file_buffer_size;
|
unsigned long m_file_buffer_size;
|
||||||
|
|
||||||
|
/** Next available piece descriptor index. */
|
||||||
|
uint32_t m_piece_descriptor_index;
|
||||||
|
|
||||||
PagedBuffer<uint8_t> m_append_buffer;
|
PagedBuffer<uint8_t> m_append_buffer;
|
||||||
PagedBuffer<PieceDescriptor> m_piece_descriptors;
|
PagedBuffer<PieceDescriptor> m_piece_descriptors;
|
||||||
PagedBuffer<ChangeDescriptor> m_change_descriptors;
|
PagedBuffer<ChangeDescriptor> m_change_descriptors;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user