PLCnext API Documentation 26.0.1.58
RscServiceProxyBase2.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/RscClient.hpp"
10#include "Arp/Base/Rsc/Commons/Services/IRscServiceProxy2.hpp"
11#include "Arp/Base/Rsc/Commons/Services/RscServiceProxyInfo.hpp"
12
13namespace Arp::Base::Rsc::Commons::Services
14{
15
20class ARP_EXPORT RscServiceProxyBase2 : public IRscServiceProxy2
21{
22public: // Impl forward declaration
23 class Impl;
24
25public: // construction
26 RscServiceProxyBase2(const RscServiceProxyInfo& serviceProxyInfo, RscClient& rscClient);
27
28 // canonical construction/destruction/assignment
29 RscServiceProxyBase2(const RscServiceProxyBase2& arg) = delete;
31 RscServiceProxyBase2& operator=(const RscServiceProxyBase2& arg) = delete;
34
35public: // IServiceProxy operations
36 RscClient& GetRscClient(void)const;
37 String GetServiceName(void)const override;
38 String GetServiceProviderName(void)const override;
39 RscHandle GetServiceHandle(void)override;
40 RscHandle GetServiceProviderHandle(void)override;
41 void ReadServiceHandles(void)override;
42
43public: // IServiceProxy2 operations
44 const RscServiceHandle& GetRscServiceHandle(void)const override;
45 void UpdateRscServiceHandle(RscClient& rscClient)override;
46
47public: // internal operations
48 Impl& GetImpl(void);
49 const Impl& GetImpl(void)const;
50
51private: // Impl usings
52 using Pimpl = PimplPtr<Impl>;
53
54private: // Impl fields
55 Pimpl pimpl;
56};
57
58} // end of namespace Arp::Base::Rsc::Commons::Services
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
The interface of RSC service proxies used on client side to invoke services remotely.
Definition: IRscServiceProxy2.hpp:19
This class monitors a RSC client call using RAII idiom.
Definition: RscClient.TransactionGuard.hpp:18
This class is used for adressing RSC service instances remotely.
Definition: RscServiceHandle.hpp:22
Base class of all RSC service proxies.
Definition: RscServiceProxyBase2.hpp:21
RscServiceProxyBase2(RscServiceProxyBase2 &&arg) noexcept
The default move constructor.
RscServiceProxyBase2 & operator=(RscServiceProxyBase2 &&arg) noexcept
The default move-assignment operator.
This class contains all infos of a RSC service proxy.
Definition: RscServiceProxyInfo.hpp:21