PLCnext API Documentation 23.0.2.9
IRscServiceFactory.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
7#include "Arp/System/Rsc/Services/Rsc.h"
8#include "Arp/System/Rsc/Services/IRscService.hpp"
9#include "Arp/System/Rsc/Services/IRscServiceStub.hpp"
10
11namespace Arp { namespace System { namespace Rsc { namespace Services
12{
13
14// forwards
15class IRscAuthorizator;
16
21class IRscServiceFactory
22{
23public: // typedefs
24 typedef std::shared_ptr<IRscServiceFactory> Ptr;
25
26public: // construction/destruction
28 IRscServiceFactory(void) = default;
30 virtual ~IRscServiceFactory(void) = default;
31
32public: // abstract properties
33 virtual bool IsSecure(void)const = 0;
34 virtual const String& GetServiceProviderName(void)const = 0;
35
36public: // abstract operations
37 virtual IRscService* CreateServiceImpl(const char* providerName, IRscAuthorizator* pAuthorizator) = 0;
38 virtual IRscServiceStub* CreateServiceStub(const char* providerName, IRscAuthorizator* pAuthorizator) = 0;
39
40private: // deleted methods (for non-copyable interfaces)
41 IRscServiceFactory(const IRscServiceFactory& arg); // = delete;
42 IRscServiceFactory& operator=(const IRscServiceFactory& arg); // = delete;
43};
44
45}}}} // end of namespace Arp::System::Rsc::Services
Arp::BasicString< char8 > String
The Arp String class.
Definition: TypeSystem.h:27
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API