ADTF
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
adtf_memory< T, TSIZE, Enable >

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

#include <rawmemory_base.h>

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

Public Member Functions

 adtf_memory (T *pAssignValue)
 explicit CTOR to create a IRawMemory interface rvalue
 
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.
 
const void * Get () const override
 Retrieves the content of the assigned value of type T as memory pointer.
 
size_t GetSize () const override
 Retrieves the size of the content of the assigned value of type T.
 

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.
 
static const void * GetPtr (const T *pAssignValue)
 Gets the memory pointer to the of container class T in parameter pAssignValue.
 
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.
 

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 IRawMemory interface (see Supported types for adtf_memory<T> for writing and reading Samples).

The template uses the 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.

Member Typedef Documentation

◆ _myBase

template<typename T, size_t TSIZE = 0, typename Enable = void>
typedef adtf::base::ant::adtf_memory_forward<T> _myBase
private

Definition at line 411 of file rawmemory_base.h.

◆ _myStorageType

template<typename T, size_t TSIZE = 0, typename Enable = void>
typedef T _myStorageType
private

Definition at line 410 of file rawmemory_base.h.

◆ _myType

template<typename T, size_t TSIZE = 0, typename Enable = void>
typedef adtf_memory<T, TSIZE, void> _myType
private

Definition at line 409 of file rawmemory_base.h.

Constructor & Destructor Documentation

◆ adtf_memory() [1/2]

template<typename T, size_t TSIZE = 0, typename Enable = void>
adtf_memory ( )
inlineprivate

Definition at line 416 of file rawmemory_base.h.

◆ adtf_memory() [2/2]

template<typename T, size_t TSIZE = 0, typename Enable = void>
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.

◆ ~adtf_memory()

template<typename T, size_t TSIZE = 0, typename Enable = void>
virtual ~adtf_memory ( )
inlinevirtual

DTOR.

Definition at line 434 of file rawmemory_base.h.

Member Function Documentation

◆ Get()

template<typename T, size_t TSIZE = 0, typename Enable = void>
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.

◆ GetSize()

template<typename T, size_t TSIZE = 0, typename Enable = void>
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.

◆ Set()

template<typename T, size_t TSIZE = 0, typename Enable = void>
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.

Member Data Documentation

◆ m_pAssignValue

template<typename T, size_t TSIZE = 0, typename Enable = void>
T* m_pAssignValue
private

Reference pointer to the T constructed with explict adtf_memory.

Definition at line 415 of file rawmemory_base.h.