add a m_dataStart member in Buffer::Iterator

This commit is contained in:
Mathieu Lacage committed 2007-09-07 18:45:00 +02:00
1 parent 74ceb06336
commit 6ced31f8b5
2 files changed
+26 -11

No files matched your search

+22 -10
View File
@@ -216,15 +216,14 @@ Buffer::GetSize (void) const
Buffer::Iterator
Buffer::Begin (void) const
{
return Buffer::Iterator (this, 0);
return Buffer::Iterator (this);
}
Buffer::Iterator
Buffer::End (void) const
{
return Buffer::Iterator (this, GetSize ());
return Buffer::Iterator (this, false);
}
Buffer::Iterator::Iterator ()
: m_zeroStart (0),
m_zeroEnd (0),
@@ -232,13 +231,26 @@ Buffer::Iterator::Iterator ()
m_current (0),
m_data (0)
{}
Buffer::Iterator::Iterator (Buffer const*buffer, uint32_t current)
: m_zeroStart (buffer->m_data->m_initialStart-buffer->m_start),
m_zeroEnd (m_zeroStart+buffer->m_zeroAreaSize),
m_dataEnd (buffer->GetSize ()),
m_current (current),
m_data (buffer->m_data->m_data+buffer->m_start)
{}
Buffer::Iterator::Iterator (Buffer const*buffer)
{
Construct (buffer);
m_current = m_dataStart;
}
Buffer::Iterator::Iterator (Buffer const*buffer, bool dummy)
{
Construct (buffer);
m_current = m_dataEnd;
}
void
Buffer::Iterator::Construct (const Buffer *buffer)
{
m_zeroStart = buffer->m_data->m_initialStart-buffer->m_start;
m_zeroEnd = m_zeroStart+buffer->m_zeroAreaSize;
m_dataStart = 0;
m_dataEnd = buffer->GetSize ();
m_data = buffer->m_data->m_data+buffer->m_start;
}
void
Buffer::Iterator::Next (void)
+4 -1
View File
@@ -237,10 +237,13 @@ public:
void Read (uint8_t *buffer, uint16_t size);
private:
friend class Buffer;
Iterator (Buffer const*buffer, uint32_t m_current);
Iterator (Buffer const*buffer);
Iterator (Buffer const*buffer, bool);
void Construct (const Buffer *buffer);
uint32_t GetIndex (uint32_t n);
uint32_t m_zeroStart;
uint32_t m_zeroEnd;
uint32_t m_dataStart;
uint32_t m_dataEnd;
uint32_t m_current;
uint8_t *m_data;