PLCnext API Documentation 25.0.2.69
IRscServiceProxyFactory.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Rsc/Commons/Rsc.hpp"
9
10namespace Arp::Base::Rsc::Commons::Services
11{
12
13// forwards
14class RscClient;
15class IRscServiceProxy;
16
22{
23public: // usings
24 using Ptr = std::shared_ptr<IRscServiceProxyFactory>;
25 using IRscServiceProxyPtr = std::shared_ptr<IRscServiceProxy>;
26
27public: // construction
29 IRscServiceProxyFactory(void) = default;
30
31public: // canonical construction/destruction/assignment
44 virtual ~IRscServiceProxyFactory(void) = default;
45
46public: // abstract operations
49 virtual const char* GetServiceName(void)const = 0;
50
53 virtual const char* GetServiceProviderName(void)const = 0;
54
60 virtual IRscServiceProxyPtr CreateServiceProxy(RscHandle providerHandle, RscHandle serviceHandle, RscClient& client) = 0;
61};
62
63} // end of namespace Arp::Base::Rsc::Commons::Services
Interface for service proxy factories to create service proxies used by RSC clients.
Definition: IRscServiceProxyFactory.hpp:22
IRscServiceProxyFactory(void)=default
The default constructor.
IRscServiceProxyFactory(const IRscServiceProxyFactory &arg)=delete
The deleted copy constructor.
IRscServiceProxyFactory & operator=(const IRscServiceProxyFactory &arg)=delete
The deleted assignment operator.
std::shared_ptr< IRscServiceProxy > IRscServiceProxyPtr
The shared pointer type of the service type.
Definition: IRscServiceProxyFactory.hpp:25
std::shared_ptr< IRscServiceProxyFactory > Ptr
The shared pointer type of this proxy factory type.
Definition: IRscServiceProxyFactory.hpp:24
IRscServiceProxyFactory(IRscServiceProxyFactory &&arg) noexcept=default
The default move constructor.
virtual IRscServiceProxyPtr CreateServiceProxy(RscHandle providerHandle, RscHandle serviceHandle, RscClient &client)=0
Creates a service proxy instance to be used by RSC clients remotely.
virtual const char * GetServiceProviderName(void) const =0
Gets the service-provider name of the service to be created by this factory.
virtual ~IRscServiceProxyFactory(void)=default
Destructs this instance and frees all resources.
virtual const char * GetServiceName(void) const =0
Gets the service name of the service type to be created by this factory.
IRscServiceProxyFactory & operator=(IRscServiceProxyFactory &&arg) noexcept=default
The default move-assignment operator.
This class monitors a RSC client call using RAII idiom.
Definition: RscClient.TransactionGuard.hpp:18