mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-24 07:43:37 +00:00
61 lines
1.9 KiB
C++
61 lines
1.9 KiB
C++
#include "../../Platform/stdafx.h"
|
|
#include "Buffer.h"
|
|
|
|
Buffer::Buffer(unsigned int capacity)
|
|
: m_capacity(capacity),
|
|
m_position(0),
|
|
m_limit(capacity),
|
|
hasBackingArray(false) {}
|
|
|
|
// Clears this buffer. The position is set to zero, the limit is set to the
|
|
// capacity, and the mark is discarded. This method does not actually erase the
|
|
// data in the buffer, but it is named as if it did because it will most often
|
|
// be used in situations in which that might as well be the case.
|
|
//
|
|
// Returns:
|
|
// This buffer
|
|
Buffer* Buffer::clear() {
|
|
m_position = 0;
|
|
m_limit = m_capacity;
|
|
|
|
return this;
|
|
}
|
|
|
|
// Sets this buffer's limit. If the position is larger than the new limit then
|
|
// it is set to the new limit. If the mark is defined and larger than the new
|
|
// limit then it is discarded. Parameters: newLimit - The new limit value; must
|
|
// be non-negative and no larger than this buffer's capacity Returns: This
|
|
// buffer
|
|
Buffer* Buffer::limit(unsigned int newLimit) {
|
|
assert(newLimit <= m_capacity);
|
|
|
|
m_limit = newLimit;
|
|
|
|
if (m_position > newLimit) m_position = newLimit;
|
|
|
|
return this;
|
|
}
|
|
|
|
unsigned int Buffer::limit() { return m_limit; }
|
|
|
|
// Sets this buffer's position. If the mark is defined and larger than the new
|
|
// position then it is discarded. Parameters: newPosition - The new position
|
|
// value; must be non-negative and no larger than the current limit Returns:
|
|
// This buffer
|
|
Buffer* Buffer::position(unsigned int newPosition) {
|
|
assert(newPosition <= m_limit);
|
|
|
|
m_position = newPosition;
|
|
|
|
return this;
|
|
}
|
|
|
|
// Returns this buffer's position.
|
|
// Returns:
|
|
// The position of this buffer
|
|
unsigned int Buffer::position() { return m_position; }
|
|
|
|
// Returns the number of elements between the current position and the limit.
|
|
// Returns:
|
|
// The number of elements remaining in this buffer
|
|
unsigned int Buffer::remaining() { return m_limit - m_position; } |