ADTF
adtf_memory< T, TSIZE, Enable >

Template class implementation for the ant::IRawMemory interface (see Supported types for adtf_memory<T> for writing and reading Samples). More...

Inheritance diagram for adtf_memory< T, TSIZE, Enable >:
[legend]

Public Member Functions

 adtf_memory (T *pAssignValue)
 explicit CTOR to create a IRawMemory interface rvalue More...
 
virtual ~adtf_memory ()
 DTOR.
 
tResult Set (const void *pValue, size_t szSize) override
 Sets the content of the assigned value of type T to the given memory. More...
 
const void * Get () const override
 Retrieves the content of the assigned value of type T as memory pointer. More...
 
size_t GetSize () const override
 Retrieves the size of the content of the assigned value of type T. More...
 

Private Types

typedef adtf_memory< T, TSIZE, void > _myType
 
typedef T _myStorageType
 
typedef adtf::base::ant::adtf_memory_forward< T > _myBase
 

Private Member Functions

 adtf_memory (const adtf_memory &)=delete
 
adtf_memoryoperator= (const adtf_memory &)=delete
 
 adtf_memory (adtf_memory &&)=delete
 
adtf_memoryoperator= (adtf_memory &&)=delete
 

Private Attributes

T * m_pAssignValue
 Reference pointer to the T constructed with explict adtf_memory.
 

Additional Inherited Members

- Static Protected Member Functions inherited from adtf_memory_forward< T >
static tResult Assign (T *pAssignValue, const size_t szStaticSize, const void *pValueToSet, const size_t szSizeToSet)
 Sets (copy) the memory value pValueToSet of size in bytes szSizeToSet to the of container class T in parameter pAssignValue. More...
 
static const void * GetPtr (const T *pAssignValue)
 Gets the memory pointer to the of container class T in parameter pAssignValue. More...
 
static size_t GetSize (const T *pAssignValue, const size_t szStaticSize)
 Gets size in bytes of the memory pointer of container class T in parameter pAssignValue. More...
 

Detailed Description

template<typename T, size_t TSIZE = 0, typename Enable = void>
class adtf::base::penguin::adtf_memory< T, TSIZE, Enable >

Template class implementation for the ant::IRawMemory interface (see Supported types for adtf_memory<T> for writing and reading Samples).

The template uses the ant::adtf_memory_forward concept template for concrete Assign, GetPtr and GeSize implementations.

The IRawMemory interface is designed to exists only on stack as rvalue reference. See the Supported types for adtf_memory<T> for writing and reading Samples for type supported.

Template Parameters
TType of the memory implementation which can provide raw memory.
size_tSize of memory if the type T is a fixed size type. Set to 0 if T is resizable and a non trivial type.
EnableEnabled if is trivially copyable layout type
Remarks
If no specialization for adtf_memory_forward exists for your type T the using of adtf_memory and adtf_memory_intf will fail!

Definition at line 407 of file rawmemory_base.h.

Constructor & Destructor Documentation

◆ adtf_memory()

adtf_memory ( T *  pAssignValue)
inlineexplicit

explicit CTOR to create a IRawMemory interface rvalue

Parameters
pAssignValuethe value pointer to assign

Definition at line 427 of file rawmemory_base.h.

Member Function Documentation

◆ Get()

const void* Get ( ) const
inlineoverridevirtual

Retrieves the content of the assigned value of type T as memory pointer.

Returns
const void*

Implements IRawMemory.

Definition at line 463 of file rawmemory_base.h.

References adtf_memory_forward< T >::GetPtr(), and adtf_memory< T, TSIZE, Enable >::m_pAssignValue.

◆ GetSize()

size_t GetSize ( ) const
inlineoverridevirtual

Retrieves the size of the content of the assigned value of type T.

Remarks
This value is directly related to the returned memory pointer of Get
Returns
size_t

Implements IRawMemory.

Definition at line 476 of file rawmemory_base.h.

References adtf_memory_forward< T >::GetSize(), and adtf_memory< T, TSIZE, Enable >::m_pAssignValue.

◆ Set()

tResult Set ( const void *  pValue,
size_t  szSize 
)
inlineoverridevirtual

Sets the content of the assigned value of type T to the given memory.

Parameters
pValueThe memory to set the value
szSizethe size of memory within pValue in bytes
Returns
tResult

Implements IRawMemory.

Definition at line 445 of file rawmemory_base.h.

References adtf_memory_forward< T >::Assign(), adtf_memory< T, TSIZE, Enable >::m_pAssignValue, and RETURN_NOERROR.