44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
|
/******************************************************************************/
|
||
|
/* MEMORY STREAMS - INLINE CODE ***********************************************/
|
||
|
/******************************************************************************/
|
||
|
|
||
|
#pragma once
|
||
|
#include <lw/lib/MemoryStreams.hh>
|
||
|
namespace lw {
|
||
|
|
||
|
|
||
|
/*= T_MemoryInputStream ======================================================*/
|
||
|
|
||
|
template< int S , typename T >
|
||
|
inline T_MemoryInputStream::T_MemoryInputStream( T_FixedBuffer< S , T > const& buffer )
|
||
|
: T_MemoryInputStream( buffer.data( ) , buffer.bytes( ) )
|
||
|
{ }
|
||
|
|
||
|
template< typename T >
|
||
|
inline T_MemoryInputStream::T_MemoryInputStream( T_Buffer< T > const& buffer )
|
||
|
: T_MemoryInputStream( buffer.data( ) , buffer.bytes( ) )
|
||
|
{ }
|
||
|
|
||
|
|
||
|
/*= T_MemoryOutputStream =====================================================*/
|
||
|
|
||
|
template< int S , typename T >
|
||
|
inline T_MemoryOutputStream::T_MemoryOutputStream( T_FixedBuffer< S , T >& buffer )
|
||
|
: T_MemoryOutputStream( buffer.data( ) , buffer.bytes( ) )
|
||
|
{ }
|
||
|
|
||
|
template< typename T >
|
||
|
inline T_MemoryOutputStream::T_MemoryOutputStream( T_Buffer< T >& buffer )
|
||
|
: T_MemoryOutputStream( buffer.data( ) , buffer.bytes( ) ,
|
||
|
[&buffer] ( uint8_t* , size_t reqSize ) -> uint8_t*
|
||
|
{
|
||
|
const size_t mod( reqSize % sizeof( T ) );
|
||
|
const size_t nItems( reqSize / sizeof( T ) + ( mod ? 1 : 0 ) );
|
||
|
buffer.resize( nItems );
|
||
|
return buffer.data( );
|
||
|
} )
|
||
|
{ }
|
||
|
|
||
|
|
||
|
} // namespace
|