MetroCollect  2.3.4
MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P > Class Template Reference

Class managing a pointer to a dynamically sized type. More...

#include <SourceEthtool.h>

Public Types

using ValueType = T
 The type of the object managed. More...
 
using PaddingType = P
 Elementary memory unit. More...
 

Public Member Functions

 EthtoolPointer () noexcept
 Construct a new, empty Ethtool Pointer object. More...
 
 EthtoolPointer (uint32_t cmd, size_t padding=0) noexcept
 Construct a new Ethtool Pointer object. More...
 
template<typename Q >
 EthtoolPointer (EthtoolPointer< T, Q > &&other) noexcept
 Move constructor. More...
 
 EthtoolPointer (EthtoolPointer &)=delete
 Deleted copy constructor. More...
 
template<typename Q >
EthtoolPointeroperator= (EthtoolPointer< T, Q > &&other) noexcept
 Move assignment operator. More...
 
EthtoolPointeroperator= (EthtoolPointer &)=delete
 Deleted copy assignment operator. More...
 
 ~EthtoolPointer ()
 Destroy the Ethtool Pointer object. More...
 
T & operator* ()
 Dereferences pointer to the managed object. More...
 
const T & operator* () const
 Dereferences pointer to the managed object. More...
 
T * operator-> () noexcept
 Dereferences pointer to the managed object. More...
 
const T * operator-> () const noexcept
 Dereferences pointer to the managed object. More...
 
size_t paddingSize () const noexcept
 Padding size appended after the object. More...
 
size_t totalSizeInBytes () const noexcept
 Total size of the managed object. More...
 
caddr_t raw () const noexcept
 Returns the raw managed pointer with Ethtool-specific type. More...
 

Protected Attributes

size_t paddingSize_
 Size of added dynamic padding, in multiples of type P size. More...
 
T * pointer_ = nullptr
 Managed pointer. More...
 

Detailed Description

template<typename T, typename P = char>
class MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >

Class managing a pointer to a dynamically sized type.

Template Parameters
TThe type of the object managed
PElementary memory unit, defaults to char (1 byte)

Definition at line 57 of file SourceEthtool.h.

Member Typedef Documentation

◆ PaddingType

template<typename T, typename P = char>
using MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::PaddingType = P

Elementary memory unit.

Definition at line 60 of file SourceEthtool.h.

◆ ValueType

template<typename T, typename P = char>
using MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::ValueType = T

The type of the object managed.

Definition at line 59 of file SourceEthtool.h.

Constructor & Destructor Documentation

◆ EthtoolPointer() [1/4]

template<typename T, typename P = char>
MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::EthtoolPointer ( )
inlinenoexcept

Construct a new, empty Ethtool Pointer object.

Definition at line 70 of file SourceEthtool.h.

◆ EthtoolPointer() [2/4]

template<typename T, typename P = char>
MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::EthtoolPointer ( uint32_t  cmd,
size_t  padding = 0 
)
inlinenoexcept

Construct a new Ethtool Pointer object.

Parameters
cmdEthtool cmd value
paddingPadding size to append after the object

Definition at line 78 of file SourceEthtool.h.

◆ EthtoolPointer() [3/4]

template<typename T, typename P = char>
template<typename Q >
MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::EthtoolPointer ( EthtoolPointer< T, Q > &&  other)
inlinenoexcept

Move constructor.

Template Parameters
Qother elementary memory unit
Parameters
otherEthtoolPointer to move

Definition at line 91 of file SourceEthtool.h.

◆ EthtoolPointer() [4/4]

template<typename T, typename P = char>
MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::EthtoolPointer ( EthtoolPointer< T, P > &  )
delete

Deleted copy constructor.

◆ ~EthtoolPointer()

template<typename T, typename P = char>
MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::~EthtoolPointer ( )
inline

Destroy the Ethtool Pointer object.

Definition at line 125 of file SourceEthtool.h.

Member Function Documentation

◆ operator*() [1/2]

template<typename T, typename P = char>
T& MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::operator* ( )
inline

Dereferences pointer to the managed object.

Returns
The object owned by this

Definition at line 135 of file SourceEthtool.h.

◆ operator*() [2/2]

template<typename T, typename P = char>
const T& MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::operator* ( ) const
inline

Dereferences pointer to the managed object.

Returns
The const object owned by this

Definition at line 144 of file SourceEthtool.h.

◆ operator->() [1/2]

template<typename T, typename P = char>
T* MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::operator-> ( )
inlinenoexcept

Dereferences pointer to the managed object.

Returns
A pointer to the object owned by this

Definition at line 153 of file SourceEthtool.h.

◆ operator->() [2/2]

template<typename T, typename P = char>
const T* MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::operator-> ( ) const
inlinenoexcept

Dereferences pointer to the managed object.

Returns
A const pointer to the object owned by this

Definition at line 162 of file SourceEthtool.h.

◆ operator=() [1/2]

template<typename T, typename P = char>
template<typename Q >
EthtoolPointer& MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::operator= ( EthtoolPointer< T, Q > &&  other)
inlinenoexcept

Move assignment operator.

Template Parameters
Qother elementary memory unit
Parameters
otherEthtool Pointer to move
Returns
this with updated values

Definition at line 108 of file SourceEthtool.h.

◆ operator=() [2/2]

template<typename T, typename P = char>
EthtoolPointer& MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::operator= ( EthtoolPointer< T, P > &  )
delete

Deleted copy assignment operator.

◆ paddingSize()

template<typename T, typename P = char>
size_t MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::paddingSize ( ) const
inlinenoexcept

Padding size appended after the object.

Returns
The padding size

Definition at line 172 of file SourceEthtool.h.

◆ raw()

template<typename T, typename P = char>
caddr_t MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::raw ( ) const
inlinenoexcept

Returns the raw managed pointer with Ethtool-specific type.

Returns
The raw managed pointer

Definition at line 190 of file SourceEthtool.h.

Here is the caller graph for this function:

◆ totalSizeInBytes()

template<typename T, typename P = char>
size_t MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::totalSizeInBytes ( ) const
inlinenoexcept

Total size of the managed object.

Returns
size_t

Definition at line 181 of file SourceEthtool.h.

Member Data Documentation

◆ paddingSize_

template<typename T, typename P = char>
size_t MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::paddingSize_
protected

Size of added dynamic padding, in multiples of type P size.

Definition at line 63 of file SourceEthtool.h.

◆ pointer_

template<typename T, typename P = char>
T* MetroCollect::MetricsSource::SourceEthtool::EthtoolPointer< T, P >::pointer_ = nullptr
protected

Managed pointer.

Definition at line 64 of file SourceEthtool.h.


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