PLCnext API Documentation 24.0.0.71
IRscServiceFactory.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
8#include "Arp/System/Rsc/Services/Rsc.h"
9#include "Arp/System/Rsc/Services/IRscService.hpp"
10#include "Arp/System/Rsc/Services/IRscServiceStub.hpp"
11
12namespace Arp { namespace System { namespace Rsc { namespace Services
13{
14
15// forwards
16class IRscAuthorizator;
17
22class IRscServiceFactory
23{
24public: // typedefs
25 typedef std::shared_ptr<IRscServiceFactory> Ptr;
26
27public: // construction/destruction
29 IRscServiceFactory(void) = default;
31 virtual ~IRscServiceFactory(void) = default;
32
33public: // abstract properties
34 virtual bool IsSecure(void)const = 0;
35 virtual const String& GetServiceProviderName(void)const = 0;
36
37public: // abstract operations
38 virtual IRscService* CreateServiceImpl(const char* providerName, IRscAuthorizator* pAuthorizator) = 0;
39 virtual IRscServiceStub* CreateServiceStub(const char* providerName, IRscAuthorizator* pAuthorizator) = 0;
40
41private: // deleted methods (for non-copyable interfaces)
42 IRscServiceFactory(const IRscServiceFactory& arg); // = delete;
43 IRscServiceFactory& operator=(const IRscServiceFactory& arg); // = delete;
44};
45
46}}}} // 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