foobar2000 SDK  2015-08-03
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 194 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 197 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 200 of file filesystem_helper.h.

200 : 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 201 of file filesystem_helper.h.

Member Function Documentation

const void* stream_reader_memblock_ref::get_ptr_ ( ) const
inline

Definition at line 244 of file filesystem_helper.h.

244 {return m_data + m_pointer;}
const unsigned char * m_data
t_size stream_reader_memblock_ref::get_remaining ( ) const
inline
t_size stream_reader_memblock_ref::read ( void *  p_buffer,
t_size  p_bytes,
abort_callback p_abort 
)
inline

Definition at line 214 of file filesystem_helper.h.

214  {
215  t_size delta = pfc::min_t(p_bytes, get_remaining());
216  memcpy(p_buffer,m_data+m_pointer,delta);
217  m_pointer += delta;
218  return delta;
219  }
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 220 of file filesystem_helper.h.

220  {
221  if (p_bytes > get_remaining()) throw exception_io_data_truncation();
222  memcpy(p_buffer,m_data+m_pointer,p_bytes);
223  m_pointer += p_bytes;
224  }
const unsigned char * m_data
void stream_reader_memblock_ref::reset ( )
inline

Definition at line 246 of file filesystem_helper.h.

void stream_reader_memblock_ref::seek_ ( t_size  offset)
inline

Definition at line 240 of file filesystem_helper.h.

240  {
241  PFC_ASSERT( offset <= m_data_size );
242  m_pointer = offset;
243  }
template<typename t_array >
void stream_reader_memblock_ref::set_data ( const t_array &  data)
inline

Definition at line 203 of file filesystem_helper.h.

203  {
205  set_data(data.get_ptr(), data.get_size());
206  }
void set_data(const t_array &data)
void stream_reader_memblock_ref::set_data ( const void *  data,
t_size  dataSize 
)
inline

Definition at line 208 of file filesystem_helper.h.

208  {
209  m_pointer = 0;
210  m_data = reinterpret_cast<const unsigned char*>(data);
211  m_data_size = dataSize;
212  }
const unsigned char * m_data
t_filesize stream_reader_memblock_ref::skip ( t_filesize  p_bytes,
abort_callback p_abort 
)
inline

Definition at line 225 of file filesystem_helper.h.

225  {
226  t_size remaining = get_remaining();
227  if (p_bytes >= remaining) {
228  m_pointer = m_data_size; return remaining;
229  } else {
230  m_pointer += (t_size)p_bytes; return p_bytes;
231  }
232  }
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 233 of file filesystem_helper.h.

233  {
234  if (p_bytes > get_remaining()) {
235  throw exception_io_data_truncation();
236  } else {
237  m_pointer += (t_size)p_bytes;
238  }
239  }
size_t t_size
Definition: int_types.h:48

Field Documentation

const unsigned char* stream_reader_memblock_ref::m_data
private

Definition at line 248 of file filesystem_helper.h.

t_size stream_reader_memblock_ref::m_data_size
private

Definition at line 249 of file filesystem_helper.h.

t_size stream_reader_memblock_ref::m_pointer
private

Definition at line 249 of file filesystem_helper.h.


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