PDI 1.8.0-alpha.2024-08-11

the PDI data interface

PDI::Reference_base Class Reference

A common base for all references, whatever their access privileges. More...

Inheritance diagram for PDI::Reference_base:
PDI::Ref_any< R, W >

Classes

struct  Referenced_buffer
 A descriptor for a buffer in which references can point. More...
 
struct  Referenced_data
 A descriptor for data on which references can point. More...
 

Public Member Functions

Datatype_sptr type () const noexcept
 accesses the type of the referenced raw data
 
size_t hash () const noexcept
 

Protected Member Functions

 Reference_base () noexcept
 Constructs a null reference.
 
 Reference_base (const Reference_base &)=delete
 
 Reference_base (Reference_base &&)=delete
 
Reference_baseoperator= (const Reference_base &)=delete
 
Reference_baseoperator= (Reference_base &&)=delete
 

Static Protected Member Functions

static std::shared_ptr< Referenced_dataget_content (const Reference_base &other) noexcept
 Function to access the content from a reference with different access right.
 
static Ref do_copy (Ref_r ref)
 

Protected Attributes

std::shared_ptr< Referenced_datam_content
 Pointer on the data content, can be null if the ref is null.
 

Detailed Description

A common base for all references, whatever their access privileges.

This ensure all reference, even with different type because of differing access privileges, can access the content at this level in each other.

Constructor & Destructor Documentation

◆ Reference_base() [1/3]

PDI::Reference_base::Reference_base ( )
inlineprotectednoexcept

Constructs a null reference.

◆ Reference_base() [2/3]

PDI::Reference_base::Reference_base ( const Reference_base )
protecteddelete

◆ Reference_base() [3/3]

PDI::Reference_base::Reference_base ( Reference_base &&  )
protecteddelete

Member Function Documentation

◆ get_content()

static std::shared_ptr< Referenced_data > PDI::Reference_base::get_content ( const Reference_base other)
inlinestaticprotectednoexcept

Function to access the content from a reference with different access right.

◆ do_copy()

static Ref PDI::Reference_base::do_copy ( Ref_r  ref)
staticprotected

◆ operator=() [1/2]

Reference_base & PDI::Reference_base::operator= ( const Reference_base )
protecteddelete

◆ operator=() [2/2]

Reference_base & PDI::Reference_base::operator= ( Reference_base &&  )
protecteddelete

◆ type()

Datatype_sptr PDI::Reference_base::type ( ) const
noexcept

accesses the type of the referenced raw data

◆ hash()

size_t PDI::Reference_base::hash ( ) const
inlinenoexcept

Member Data Documentation

◆ m_content

std::shared_ptr<Referenced_data> PDI::Reference_base::m_content
mutableprotected

Pointer on the data content, can be null if the ref is null.


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