PLCnext API Documentation 25.0.2.69
IRscServiceProxy.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Rsc/Commons/Rsc.hpp"
9#include "Arp/Base/Rsc/Commons/IRscService.hpp"
10#include "Arp/Base/Rsc/Commons/Services/RscClient.hpp"
11
12namespace Arp::Base::Rsc::Commons::Services
13{
14
19class ARP_EXPORT IRscServiceProxy : public IRscService
20{
21public: // usings
22 using Ptr = std::shared_ptr<IRscServiceProxy>;
23
24public: // construction
26 IRscServiceProxy(void) = default;
27
28public: // canonical construction/destruction/assignment
30 IRscServiceProxy(const IRscServiceProxy& arg) = delete;
33 IRscServiceProxy(IRscServiceProxy&& arg)noexcept = default;
39 IRscServiceProxy& operator=(IRscServiceProxy&& arg)noexcept = default;
41 virtual ~IRscServiceProxy(void) = default;
42
43public: // abstract getter
46 virtual RscClient& GetRscClient(void)const = 0;
47
50 virtual String GetServiceName(void)const = 0;
51
54 virtual String GetServiceProviderName(void)const = 0;
55
58 virtual RscHandle GetServiceHandle(void) = 0;
59
62 virtual RscHandle GetServiceProviderHandle(void) = 0;
63
64public: // abstract operations
66 virtual void ReadServiceHandles(void) = 0;
67};
68
69} // end of namespace Arp::Base::Rsc::Commons::Services
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
This is the base interface of all Rsc services.
Definition: IRscService.hpp:22
std::shared_ptr< IRscService > Ptr
The shared_ptr type of IRscService.
Definition: IRscService.hpp:25
Interface of RSC service proxies used on client side to invoke a service remotely.
Definition: IRscServiceProxy.hpp:20
virtual String GetServiceProviderName(void) const =0
Gets the service provider name of this proxy.
IRscServiceProxy & operator=(IRscServiceProxy &&arg) noexcept=default
The default move-assignment operator.
IRscServiceProxy & operator=(const IRscServiceProxy &)=delete
The deleted assignment operator.
IRscServiceProxy(void)=default
The default constructor.
virtual RscHandle GetServiceProviderHandle(void)=0
Gets the service handle of the remote service-provider instance.
virtual String GetServiceName(void) const =0
Gets the service name of this proxy.
virtual RscClient & GetRscClient(void) const =0
Gets the RscClient of this proxy.
virtual RscHandle GetServiceHandle(void)=0
Gets the service handle of the remote service instance.
virtual void ReadServiceHandles(void)=0
Updates the service handle of the remote service instance.
virtual ~IRscServiceProxy(void)=default
Destructs this instance and frees all resources.
IRscServiceProxy(IRscServiceProxy &&arg) noexcept=default
The default move constructor.
IRscServiceProxy(const IRscServiceProxy &arg)=delete
The deleted copy constructor.
This class monitors a RSC client call using RAII idiom.
Definition: RscClient.TransactionGuard.hpp:18