PLCnext API Documentation 23.6.0.37
IProgramProvider.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
8#include "Arp/Plc/Commons/Esm/IProgram.hpp"
9
10namespace Arp { namespace Plc { namespace Commons { namespace Esm
11{
12
17{
18public: // construction/destruction
20 IProgramProvider(void) = default;
22 virtual ~IProgramProvider(void) = default;
23
24public: // abstract operations to override
29 virtual IProgram::Ptr CreateProgram(const String& programName, const String& programType) = 0;
30
32 virtual void Reset(void) = 0;
33
34private: // deleted method: avoid assigning and copying
35 IProgramProvider(const IProgramProvider& arg) = delete;
36 IProgramProvider& operator=(const IProgramProvider& arg) = delete;
37};
38
39}}}} // end of namespace Arp::Plc::Commons::Esm
Interface to realizes an program provider.
Definition: IProgramProvider.hpp:17
virtual IProgram::Ptr CreateProgram(const String &programName, const String &programType)=0
Creates an instance of an program type.
IProgramProvider(void)=default
Constructs an IProgram instance.
virtual void Reset(void)=0
Resets the program provider.
virtual ~IProgramProvider(void)=default
Destructs this instance and frees all resouces.
std::shared_ptr< IProgram > Ptr
Shared pointer type of IProgram.
Definition: IProgram.hpp:22
Root namespace for the PLCnext API