PLCnext API Documentation  22.9.0.33
IProgramProvider.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/Plc/Commons/Esm/IProgram.hpp"
9 
10 namespace Arp { namespace Plc { namespace Commons { namespace Esm
11 {
12 
17 {
18 public: // construction/destruction
20  IProgramProvider(void) = default;
22  virtual ~IProgramProvider(void) = default;
23 
24 public: // abstract operations to override
29  virtual IProgram::Ptr CreateProgram(const String& programName, const String& programType) = 0;
30 
32  virtual void Reset(void) = 0;
33 
34 private: // 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