PLCnext API Documentation 26.0.1.58
RscServiceProxyFactoryBase2.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Core/PimplPtr.hxx"
9#include "Arp/Base/Rsc/Commons/Services/IRscServiceProxyFactory2.hpp"
10
11namespace Arp::Base::Rsc::Commons::Services
12{
13
19{
20public: // Impl forward declaration
21 class Impl;
22
23public: // construction
24 explicit RscServiceProxyFactoryBase2(const char* serviceName, const char* serviceProviderName = "");
25
26 // canonical construction/destruction/assignment
29 RscServiceProxyFactoryBase2& operator=(const RscServiceProxyFactoryBase2& arg) = delete;
32
33public: // overridden operations
34 const char* GetServiceName(void)const override;
35 const char* GetServiceProviderName(void)const override;
36 IRscServiceProxyPtr CreateServiceProxy(RscHandle providerHandle, RscHandle serviceHandle, RscClient& client)override;
37
38public: // internal operations
39 Impl& GetImpl(void);
40 const Impl& GetImpl(void)const;
41
42private: // Impl usings
43 using Pimpl = PimplPtr<Impl>;
44
45private: // Impl fields
46 Pimpl pimpl;
47};
48
49} // end of namespace Arp::Base::Rsc::Commons::Services
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
Interface for service proxy factories to create service proxies used by RSC clients.
Definition: IRscServiceProxyFactory2.hpp:22
std::shared_ptr< IRscServiceProxy > IRscServiceProxyPtr
The shared pointer type of the service type.
Definition: IRscServiceProxyFactory.hpp:25
This class monitors a RSC client call using RAII idiom.
Definition: RscClient.TransactionGuard.hpp:18
Base class for RSC service proxy factory implementations.
Definition: RscServiceProxyFactoryBase2.hpp:19
RscServiceProxyFactoryBase2(RscServiceProxyFactoryBase2 &&arg) noexcept
The default move constructor.
~RscServiceProxyFactoryBase2(void) override
The default destructor.
RscServiceProxyFactoryBase2 & operator=(RscServiceProxyFactoryBase2 &&arg) noexcept
The default move-assignment operator.