first commit
This commit is contained in:
73
Minecraft.World/Buffer.cpp
Normal file
73
Minecraft.World/Buffer.cpp
Normal file
@@ -0,0 +1,73 @@
|
||||
#include "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;
|
||||
}
|
||||
Reference in New Issue
Block a user