7#include "Arp/System/Rsc/Services/Rsc.h"
8#include "Arp/System/Rsc/Services/IRscServiceProxy.hpp"
9#include "Arp/System/Rsc/Services/RscClient.hpp"
11namespace Arp {
namespace System {
namespace Rsc {
namespace Services
21template<
class TServiceInterface>
22class RscServiceProxyBase :
public IRscServiceProxy,
public TServiceInterface
25 using IRscService = TServiceInterface;
26 using Base = RscServiceProxyBase<TServiceInterface>;
30 RscServiceProxyBase(RscHandle providerHandle, RscHandle serviceHandle, RscClient& rscClient);
32 ~RscServiceProxyBase(
void)
override =
default;
35 RscHandle GetServiceProviderHandle(
void)
override;
36 RscHandle GetServiceHandle(
void)
override;
37 void ReadServiceHandle(
void)
override;
40 RscServiceProxyBase(
const RscServiceProxyBase& arg);
41 RscServiceProxyBase& operator=(
const RscServiceProxyBase& arg);
44 RscHandle rscServiceProviderHandle;
45 RscHandle rscServiceHandle;
51template<
class TServiceInterface>
52inline RscServiceProxyBase<TServiceInterface>::RscServiceProxyBase(RscHandle providerHandle, RscHandle serviceHandle, RscClient& rscClient)
53 : rscServiceProviderHandle(providerHandle)
54 , rscServiceHandle(serviceHandle)
55 , rscClient(rscClient)
59template<
class TServiceInterface>
60inline RscHandle RscServiceProxyBase<TServiceInterface>::GetServiceHandle()
62 return this->rscServiceHandle;
65template<
class TServiceInterface>
66inline RscHandle RscServiceProxyBase<TServiceInterface>::GetServiceProviderHandle()
68 return this->rscServiceProviderHandle;
71template<
class TServiceInterface>
72inline void RscServiceProxyBase<TServiceInterface>::ReadServiceHandle()
74 this->rscServiceHandle = this->rscClient.GetServiceHandle(this->rscServiceProviderHandle, TServiceInterface::GetProxyFactory().GetServiceName());
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API