PLCnext API Documentation  21.0.0.35466
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 program provider.
Definition: IProgramProvider.hpp:16
IProgramComponent(void)=default
Constructs an IProgramComponent instance.
virtual IProgramProvider & GetProgramProvider(bool useBackgroundDomain)=0
Returns the program provider of this component.
std::shared_ptr< IProgramComponent > Ptr
Shared pointer type of IProgramComponent.
Definition: IProgramComponent.hpp:21
Root namespace for the PLCnext API
virtual ~IProgramComponent(void)=default
Destructs this instance and frees all resouces.
Interface to realizes an access to a plc program provider.
Definition: IProgramComponent.hpp:17