4 virtual const void * get_ptr()
const = 0;
5 virtual void * get_ptr() = 0;
7 virtual void set_size(
t_size p_size) = 0;
11 void set(
const void * p_buffer,
t_size p_size);
13 template<
typename t_source>
void set(
const t_source & source) {
14 PFC_STATIC_ASSERT(
sizeof(source[0]) == 1 );
15 set(source.get_ptr(), source.get_size());
19 inline void reset() {set_size(0);}
32 const void *
get_ptr()
const {
return m_data.get_ptr();}
33 void *
get_ptr() {
return m_data.get_ptr();}
36 m_data.set_size(p_size);
46 const void *
get_ptr()
const {
return m_data.get_ptr();}
47 void *
get_ptr() {
return m_data.get_ptr();}
57 const void *
get_ptr()
const {
return m_data.get_ptr();}
58 void *
get_ptr() {
return m_data.get_ptr();}
61 if (m_data.size() < p_size) {
62 m_data.resize( pfc::multiply_guarded<size_t>(p_size, 3) / 2 );
74 const void *
get_ptr()
const {
return m_buffer;}
77 void set_size(
t_size p_size) {
if (p_size > m_buffer_size)
throw pfc::exception_overflow(); m_size = p_size;}
83 template<
typename t_ref>
87 PFC_STATIC_ASSERT(
sizeof(ref[0]) == 1 );
89 const void *
get_ptr()
const {
return m_ref.get_ptr();}
90 void *
get_ptr() {
return m_ref.get_ptr();}
const void * get_ptr() const
mem_block_container_temp_impl(void *p_buffer, t_size p_size)
t_filesize get_size(HANDLE p_handle)
void set_size(t_size p_size)
mem_block_container_impl_t mem_block_container_impl
void copy(const mem_block_container &p_source)
mem_block_container_ref_impl(t_ref &ref)
pfc::array_t< t_uint8, t_alloc > m_data
void set_size(t_size p_size)
const void * get_ptr() const
mem_block_container_aligned_incremental_impl()
const void * get_ptr() const
void set_size(t_size p_size)
pfc::mem_block_aligned< 16 > m_data
virtual const void * get_ptr() const =0
const void * get_ptr() const
void set_size(t_size p_size)
Generic interface for a memory block; used by various other interfaces to return memory blocks while ...
void set_size(t_size p_size)
const mem_block_container & operator=(const mem_block_container &p_source)
This is free and unencumbered software released into the public domain Anyone is free to copy
pfc::mem_block_aligned< 16 > m_data
virtual t_size get_size() const =0
mem_block_container implementation.
const void * get_ptr() const