PLCnext API Documentation 25.0.2.69
DomainSelector.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Core/PimplPtr.hxx"
9#include "Arp/Plc/Domain/Commons/DomainBase.hpp"
10
12{
13
20class ARP_EXPORT DomainSelector
21{
22public: // Impl forward declaration
23 class Impl;
24
25public: // canonical construction/destruction/assignment
26 DomainSelector(const DomainSelector& arg) = delete;
27 DomainSelector(DomainSelector&& arg)noexcept = delete;
28 DomainSelector& operator=(const DomainSelector& arg) = delete;
29 DomainSelector& operator=(DomainSelector&& arg)noexcept = delete;
31
32public: // construction/destruction/assignment
33 DomainSelector(DomainBase& domain1, DomainBase& domain2);
34
35public: // operations
36 void SwapDomains(bool simulate);
37 DomainBase& Get(bool backgroundDomain);
38 const DomainBase& Get(bool backgroundDomain)const;
39
40public: // internal operations
41 Impl& GetImpl(void);
42 const Impl& GetImpl(void)const;
43
44private: // Impl usings
46
47private: // Impl fields
48 Pimpl pimpl;
49};
50
51} // end of namespace Arp::Plc::Domain::Commons
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
This class is for internal use only. Never use it directly.
Definition: DomainSelector.hpp:21
~DomainSelector(void)
The default destructor.
Namespace for interface types of the PLC domain
@ Get
Request with GET METHOD (e.g. HTTP/REST)