gem5 [DEVELOP-FOR-25.0]
Loading...
Searching...
No Matches
gem5::ConstProxyPtr< T, Proxy > Class Template Reference

#include <proxy_ptr.hh>

Inheritance diagram for gem5::ConstProxyPtr< T, Proxy >:
gem5::ProxyPtr< void, Proxy > gem5::ProxyPtr< T, Proxy >

Public Types

using Type = T
 

Public Member Functions

template<typename ... Args, typename std::enable_if_t< std::is_constructible_v< Proxy, Args &&... >, int > = 0>
 ConstProxyPtr (Addr _ptr, Args &&... args)
 
template<typename ... Args, typename std::enable_if_t< std::is_constructible_v< Proxy, Args &&... >, int > = 0>
 ConstProxyPtr (Args &&... args)
 
template<typename O, typename Enabled = typename std::enable_if_t<std::is_assignable_v<T *, O *>>>
 ConstProxyPtr (const ConstProxyPtr< O, Proxy > &other)
 
 ConstProxyPtr (const CPP &other)
 
void load ()
 
Addr addr () const
 
 operator bool () const
 
template<typename A>
std::enable_if_t< std::is_integral_v< A >, CPPoperator+ (A a) const
 
template<typename A>
std::enable_if_t< std::is_integral_v< A >, CPPoperator- (A a) const
 
ptrdiff_t operator- (const CPP &other) const
 
CPPoperator= (const CPP &other)
 
CPPoperator= (const Addr &a)
 
 operator const T * () const
 
const T & operator* () const
 
const T * operator-> () const
 

Protected Types

using CPP = ConstProxyPtr<T, Proxy>
 

Protected Member Functions

void nullCheck () const
 
void setAddr (Addr ptr)
 
 ConstProxyPtr (Addr _ptr, std::shared_ptr< Proxy > _proxy)
 

Protected Attributes

std::shared_ptr< Proxy > proxy
 
std::shared_ptr< ProxyPtrBuffer< Proxy > > buffer
 

Friends

template<typename O, typename P>
class ProxyPtr
 

Detailed Description

template<typename T, typename Proxy>
class gem5::ConstProxyPtr< T, Proxy >

Definition at line 109 of file proxy_ptr.hh.

Member Typedef Documentation

◆ CPP

template<typename T, typename Proxy>
using gem5::ConstProxyPtr< T, Proxy >::CPP = ConstProxyPtr<T, Proxy>
protected

Definition at line 134 of file proxy_ptr.hh.

◆ Type

template<typename T, typename Proxy>
using gem5::ConstProxyPtr< T, Proxy >::Type = T

Definition at line 137 of file proxy_ptr.hh.

Constructor & Destructor Documentation

◆ ConstProxyPtr() [1/5]

template<typename T, typename Proxy>
gem5::ConstProxyPtr< T, Proxy >::ConstProxyPtr ( Addr _ptr,
std::shared_ptr< Proxy > _proxy )
inlineprotected

Definition at line 129 of file proxy_ptr.hh.

◆ ConstProxyPtr() [2/5]

template<typename T, typename Proxy>
template<typename ... Args, typename std::enable_if_t< std::is_constructible_v< Proxy, Args &&... >, int > = 0>
gem5::ConstProxyPtr< T, Proxy >::ConstProxyPtr ( Addr _ptr,
Args &&... args )
inlineexplicit

Definition at line 142 of file proxy_ptr.hh.

◆ ConstProxyPtr() [3/5]

template<typename T, typename Proxy>
template<typename ... Args, typename std::enable_if_t< std::is_constructible_v< Proxy, Args &&... >, int > = 0>
gem5::ConstProxyPtr< T, Proxy >::ConstProxyPtr ( Args &&... args)
inlineexplicit

Definition at line 150 of file proxy_ptr.hh.

◆ ConstProxyPtr() [4/5]

template<typename T, typename Proxy>
template<typename O, typename Enabled = typename std::enable_if_t<std::is_assignable_v<T *, O *>>>
gem5::ConstProxyPtr< T, Proxy >::ConstProxyPtr ( const ConstProxyPtr< O, Proxy > & other)
inline

Definition at line 158 of file proxy_ptr.hh.

◆ ConstProxyPtr() [5/5]

template<typename T, typename Proxy>
gem5::ConstProxyPtr< T, Proxy >::ConstProxyPtr ( const CPP & other)
inline

Definition at line 162 of file proxy_ptr.hh.

Member Function Documentation

◆ addr()

◆ load()

template<typename T, typename Proxy>
void gem5::ConstProxyPtr< T, Proxy >::load ( )
inline

Definition at line 167 of file proxy_ptr.hh.

Referenced by TEST(), TEST(), and TEST().

◆ nullCheck()

◆ operator bool()

template<typename T, typename Proxy>
gem5::ConstProxyPtr< T, Proxy >::operator bool ( ) const
inline

Definition at line 174 of file proxy_ptr.hh.

◆ operator const T *()

template<typename T, typename Proxy>
gem5::ConstProxyPtr< T, Proxy >::operator const T * ( ) const
inline

Definition at line 211 of file proxy_ptr.hh.

◆ operator*()

template<typename T, typename Proxy>
const T & gem5::ConstProxyPtr< T, Proxy >::operator* ( ) const
inline

Definition at line 217 of file proxy_ptr.hh.

◆ operator+()

template<typename T, typename Proxy>
template<typename A>
std::enable_if_t< std::is_integral_v< A >, CPP > gem5::ConstProxyPtr< T, Proxy >::operator+ ( A a) const
inline

Definition at line 178 of file proxy_ptr.hh.

◆ operator-() [1/2]

template<typename T, typename Proxy>
template<typename A>
std::enable_if_t< std::is_integral_v< A >, CPP > gem5::ConstProxyPtr< T, Proxy >::operator- ( A a) const
inline

Definition at line 185 of file proxy_ptr.hh.

◆ operator-() [2/2]

template<typename T, typename Proxy>
ptrdiff_t gem5::ConstProxyPtr< T, Proxy >::operator- ( const CPP & other) const
inline

Definition at line 191 of file proxy_ptr.hh.

◆ operator->()

template<typename T, typename Proxy>
const T * gem5::ConstProxyPtr< T, Proxy >::operator-> ( ) const
inline

Definition at line 223 of file proxy_ptr.hh.

◆ operator=() [1/2]

template<typename T, typename Proxy>
CPP & gem5::ConstProxyPtr< T, Proxy >::operator= ( const Addr & a)
inline

Definition at line 205 of file proxy_ptr.hh.

◆ operator=() [2/2]

template<typename T, typename Proxy>
CPP & gem5::ConstProxyPtr< T, Proxy >::operator= ( const CPP & other)
inline

Definition at line 197 of file proxy_ptr.hh.

◆ setAddr()

Friends And Related Symbol Documentation

◆ ProxyPtr

template<typename T, typename Proxy>
template<typename O, typename P>
friend class ProxyPtr
friend

Definition at line 116 of file proxy_ptr.hh.

Member Data Documentation

◆ buffer

template<typename T, typename Proxy>
std::shared_ptr<ProxyPtrBuffer<Proxy> > gem5::ConstProxyPtr< T, Proxy >::buffer
protected

◆ proxy

template<typename T, typename Proxy>
std::shared_ptr<Proxy> gem5::ConstProxyPtr< T, Proxy >::proxy
protected

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

Generated on Mon May 26 2025 09:19:19 for gem5 by doxygen 1.13.2