foobar2000 SDK  2015-01-14
Public Member Functions | Private Attributes
stream_reader_memblock_ref

#include <filesystem_helper.h>

+ Inheritance diagram for stream_reader_memblock_ref:

Public Member Functions

template<typename t_array >
 stream_reader_memblock_ref (const t_array &p_array)
 
 stream_reader_memblock_ref (const void *p_data, t_size p_data_size)
 
 stream_reader_memblock_ref ()
 
const void * get_ptr_ () const
 
t_size get_remaining () const
 
t_size read (void *p_buffer, t_size p_bytes, abort_callback &p_abort)
 
void read_object (void *p_buffer, t_size p_bytes, abort_callback &p_abort)
 
void reset ()
 
void seek_ (t_size offset)
 
template<typename t_array >
void set_data (const t_array &data)
 
void set_data (const void *data, t_size dataSize)
 
t_filesize skip (t_filesize p_bytes, abort_callback &p_abort)
 
void skip_object (t_filesize p_bytes, abort_callback &p_abort)
 

Private Attributes

const unsigned char * m_data
 
t_size m_data_size
 
t_size m_pointer
 

Detailed Description

Definition at line 186 of file filesystem_helper.h.

Constructor & Destructor Documentation

template<typename t_array >
stream_reader_memblock_ref::stream_reader_memblock_ref ( const t_array &  p_array)
inline

Definition at line 189 of file filesystem_helper.h.

stream_reader_memblock_ref::stream_reader_memblock_ref ( const void *  p_data,
t_size  p_data_size 
)
inline

Definition at line 192 of file filesystem_helper.h.

192 : m_data((const unsigned char*)p_data), m_data_size(p_data_size), m_pointer(0) {}
const unsigned char * m_data
stream_reader_memblock_ref::stream_reader_memblock_ref ( )
inline

Definition at line 193 of file filesystem_helper.h.

Member Function Documentation

const void* stream_reader_memblock_ref::get_ptr_ ( ) const
inline

Definition at line 236 of file filesystem_helper.h.

236 {return m_data + m_pointer;}
const unsigned char * m_data
t_size stream_reader_memblock_ref::get_remaining ( ) const
inline

Definition at line 237 of file filesystem_helper.h.

t_size stream_reader_memblock_ref::read ( void *  p_buffer,
t_size  p_bytes,
abort_callback p_abort 
)
inline

Definition at line 206 of file filesystem_helper.h.

206  {
207  t_size delta = pfc::min_t(p_bytes, get_remaining());
208  memcpy(p_buffer,m_data+m_pointer,delta);
209  m_pointer += delta;
210  return delta;
211  }
T min_t(const T &item1, const T &item2)
Definition: primitives.h:556
size_t t_size
Definition: int_types.h:48
const unsigned char * m_data
void stream_reader_memblock_ref::read_object ( void *  p_buffer,
t_size  p_bytes,
abort_callback p_abort 
)
inline

Definition at line 212 of file filesystem_helper.h.

212  {
213  if (p_bytes > get_remaining()) throw exception_io_data_truncation();
214  memcpy(p_buffer,m_data+m_pointer,p_bytes);
215  m_pointer += p_bytes;
216  }
const unsigned char * m_data
void stream_reader_memblock_ref::reset ( )
inline

Definition at line 238 of file filesystem_helper.h.

void stream_reader_memblock_ref::seek_ ( t_size  offset)
inline

Definition at line 232 of file filesystem_helper.h.

232  {
233  PFC_ASSERT( offset <= m_data_size );
234  m_pointer = offset;
235  }
template<typename t_array >
void stream_reader_memblock_ref::set_data ( const t_array &  data)
inline

Definition at line 195 of file filesystem_helper.h.

195  {
197  set_data(data.get_ptr(), data.get_size());
198  }
void set_data(const t_array &data)
void stream_reader_memblock_ref::set_data ( const void *  data,
t_size  dataSize 
)
inline

Definition at line 200 of file filesystem_helper.h.

200  {
201  m_pointer = 0;
202  m_data = reinterpret_cast<const unsigned char*>(data);
203  m_data_size = dataSize;
204  }
const unsigned char * m_data
t_filesize stream_reader_memblock_ref::skip ( t_filesize  p_bytes,
abort_callback p_abort 
)
inline

Definition at line 217 of file filesystem_helper.h.

217  {
218  t_size remaining = get_remaining();
219  if (p_bytes >= remaining) {
220  m_pointer = m_data_size; return remaining;
221  } else {
222  m_pointer += (t_size)p_bytes; return p_bytes;
223  }
224  }
size_t t_size
Definition: int_types.h:48
void stream_reader_memblock_ref::skip_object ( t_filesize  p_bytes,
abort_callback p_abort 
)
inline

Definition at line 225 of file filesystem_helper.h.

225  {
226  if (p_bytes > get_remaining()) {
227  throw exception_io_data_truncation();
228  } else {
229  m_pointer += (t_size)p_bytes;
230  }
231  }
size_t t_size
Definition: int_types.h:48

Field Documentation

const unsigned char* stream_reader_memblock_ref::m_data
private

Definition at line 240 of file filesystem_helper.h.

t_size stream_reader_memblock_ref::m_data_size
private

Definition at line 241 of file filesystem_helper.h.

t_size stream_reader_memblock_ref::m_pointer
private

Definition at line 241 of file filesystem_helper.h.


The documentation for this class was generated from the following file: