8#include "Arp/System/Rsc/Services/IRscAuthorizator.hpp"
9#include "Arp/System/Rsc/Services/RscServiceAuthorizator.hpp"
11namespace Arp {
namespace System {
namespace Rsc {
namespace Services
15template<
class TServiceImpl>
16class RscServiceSecurityStubBase :
public TServiceImpl
19 using Base = RscServiceSecurityStubBase<TServiceImpl>;
20 using ServiceImpl = TServiceImpl;
24 RscServiceSecurityStubBase(
const char* providerName, IRscAuthorizator* pAuthorizator);
26 RscServiceSecurityStubBase(
const RscServiceSecurityStubBase& arg) =
delete;
28 RscServiceSecurityStubBase& operator=(
const RscServiceSecurityStubBase& arg) =
delete;
30 ~RscServiceSecurityStubBase(
void) =
default;
33 void AuthorizeServiceInvocation(
const char* methodName);
36 RscServiceAuthorizator authorizator;
42template<
class TServiceImpl>
43inline RscServiceSecurityStubBase<TServiceImpl>::RscServiceSecurityStubBase(
const char* providerName, IRscAuthorizator* pAuthorizator)
44 : authorizator(providerName, TServiceImpl::GetProxyFactory().GetServiceName(), pAuthorizator)
48template<
class TServiceImpl>
49inline void Services::RscServiceSecurityStubBase<TServiceImpl>::AuthorizeServiceInvocation(
const char* methodName)
51 this->authorizator.AuthorizeServiceInvocation(methodName);
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API