PLCnext API Documentation  22.9.0.33
IProgramComponent.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/IProgramProvider.hpp"
9 #include <memory>
10 
11 namespace Arp { namespace Plc { namespace Commons { namespace Esm
12 {
13 
18 {
19 public: // typedefs
21  typedef std::shared_ptr<IProgramComponent> Ptr;
22 
23 protected: // construction/destruction
25  IProgramComponent(void) = default;
27  virtual ~IProgramComponent(void) = default;
28 
29 public: // abstract IProgramComponent operations
32  virtual IProgramProvider& GetProgramProvider(bool useBackgroundDomain) = 0;
33 
34 private: // deleted methods
35  IProgramComponent(const IProgramComponent& arg) = delete;
36  IProgramComponent& operator=(const IProgramComponent& arg) = delete;
37 };
38 
40 // inline methods of class IProgramComponent
41 
42 }}}} // end of namespace Arp::Plc::Commons::Esm
Interface to realizes an access to a plc program provider.
Definition: IProgramComponent.hpp:18
std::shared_ptr< IProgramComponent > Ptr
Shared pointer type of IProgramComponent.
Definition: IProgramComponent.hpp:21
IProgramComponent(void)=default
Constructs an IProgramComponent instance.
virtual ~IProgramComponent(void)=default
Destructs this instance and frees all resouces.
virtual IProgramProvider & GetProgramProvider(bool useBackgroundDomain)=0
Returns the program provider of this component.
Interface to realizes an program provider.
Definition: IProgramProvider.hpp:17
Root namespace for the PLCnext API