8#include "Arp/Base/Core/PimplPtr.hxx"
48 bool IsBackgroundDomain(
void)
const;
49 bool IsForegroundDomain(
void)
const;
51 template<
class T>
requires std::is_base_of<DomainBase, T>::value
52 T& GetForegroundDomain(
void);
54 template<
class T>
requires std::is_base_of<DomainBase, T>::value
55 const T& GetForegroundDomain(
void)
const;
57 template<
class T>
requires std::is_base_of<DomainBase, T>::value
58 T& GetBackgroundDomain(
void);
60 template<
class T>
requires std::is_base_of<DomainBase, T>::value
61 const T& GetBackgroundDomain(
void)
const;
65 const Impl& GetImpl(
void)
const;
69 const DomainBase& GetForegroundDomainInternal(
void)
const;
71 const DomainBase& GetBackgroundDomainInternal(
void)
const;
87template<
class T>
requires std::is_base_of<DomainBase, T>::value
88inline T& DomainBase::GetForegroundDomain()
90 return static_cast<T&
>(this->GetForegroundDomainInternal());
95template<
class T>
requires std::is_base_of<DomainBase, T>::value
96inline const T& DomainBase::GetForegroundDomain()
const
98 return static_cast<const T&
>(this->GetForegroundDomainInternal());
103template<
class T>
requires std::is_base_of<DomainBase, T>::value
104inline T& DomainBase::GetBackgroundDomain()
106 return static_cast<T&
>(this->GetBackgroundDomainInternal());
111template<
class T>
requires std::is_base_of<DomainBase, T>::value
112inline const T& DomainBase::GetBackgroundDomain()
const
114 return static_cast<const T&
>(this->GetBackgroundDomainInternal());
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class is used as base class of structures, which shall be adapted by DualDomain to support downl...
Definition: DomainBase.hpp:33
DomainBase(void)
Default constructor.
~DomainBase(void)
The default destructor.
Namespace for interface types of the PLC domain