mirror of
https://github.com/ETLCPP/etl.git
synced 2026-04-30 19:09:10 +08:00
#573 more comfortable circular_buffer_ext construction
This commit is contained in:
parent
ec98d64697
commit
1fa2116bd1
@ -1037,8 +1037,6 @@ namespace etl
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
pointer pbuffer;
|
||||
|
||||
private:
|
||||
@ -1201,6 +1199,15 @@ namespace etl
|
||||
{
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Constructor.
|
||||
/// Null buffer.
|
||||
//*************************************************************************
|
||||
circular_buffer_ext(size_t max_size)
|
||||
: icircular_buffer<T>(ETL_NULLPTR, max_size)
|
||||
{
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Constructor.
|
||||
/// Constructs a buffer from an iterator range.
|
||||
@ -1308,6 +1315,22 @@ namespace etl
|
||||
#endif
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// set_buffer
|
||||
//*************************************************************************
|
||||
void set_buffer(void* buffer)
|
||||
{
|
||||
this->pbuffer = reinterpret_cast<T*>(buffer);
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// set_buffer
|
||||
//*************************************************************************
|
||||
bool is_valid() const
|
||||
{
|
||||
return this->pbuffer != ETL_NULLPTR;
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
/// Destructor.
|
||||
//*************************************************************************
|
||||
|
||||
@ -66,6 +66,7 @@ namespace
|
||||
{
|
||||
Data data(buffer1.raw, SIZE);
|
||||
|
||||
CHECK(data.is_valid());
|
||||
CHECK_EQUAL(0U, data.size());
|
||||
CHECK_EQUAL(SIZE, data.max_size());
|
||||
CHECK_EQUAL(SIZE, data.capacity());
|
||||
@ -76,6 +77,25 @@ namespace
|
||||
CHECK(data.crbegin() == data.crend());
|
||||
}
|
||||
|
||||
//*************************************************************************
|
||||
TEST(test_set_buffer_after_default_constructor)
|
||||
{
|
||||
Data data(SIZE);
|
||||
CHECK(!data.is_valid());
|
||||
|
||||
data.set_buffer(buffer1.raw);
|
||||
CHECK(data.is_valid());
|
||||
|
||||
CHECK_EQUAL(0U, data.size());
|
||||
CHECK_EQUAL(SIZE, data.max_size());
|
||||
CHECK_EQUAL(SIZE, data.capacity());
|
||||
CHECK_EQUAL(SIZE, data.available());
|
||||
CHECK(data.begin() == data.end());
|
||||
CHECK(data.cbegin() == data.cend());
|
||||
CHECK(data.rbegin() == data.rend());
|
||||
CHECK(data.crbegin() == data.crend());
|
||||
}
|
||||
|
||||
#if ETL_USING_STL
|
||||
//*************************************************************************
|
||||
TEST(test_constructor_from_literal)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user