PLCnext API Documentation  20.6.0.30321
MetaComponentBase.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/System/Acf/ComponentBase.hpp"
9 #include "Arp/System/Acf/IApplication.hpp"
10 #include "Arp/Plc/Commons/Meta/IMetaComponent.hpp"
11 #include "Arp/Plc/Commons/Meta/DataInfoProvider.hpp"
12 #include "Arp/Plc/Commons/Esm/ProgramProviderBase.hpp"
13 namespace Arp { namespace Plc { namespace Commons { namespace Meta
14 {
15 
16 using namespace Arp;
17 using namespace Arp::System::Acf;
18 using namespace Arp::Plc::Commons::Esm;
19 
21 {
22 public: // construction/destruction
23  MetaComponentBase(const char* libraryNamespace);
24  virtual ~MetaComponentBase() = default;
25 
26 public: // IComponent operations
28  void SetupSettings(void);
29 
30  ARP_DEPRECATED("Call MetaComponentBase::SetupSettings() in the component's SetupSettings() method instead.")
31  void SetupConfig(void);
32 
33  ARP_DEPRECATED("Call MetaComponentBase::Dispose() in the component's Dispose() method instead.")
34  void ResetConfig(void);
35 
37  void Dispose(void);
38 
39 public: // IMetaComponentBase operations
40  IDataInfoProvider& GetDataInfoProvider(bool isChanging) override;
41  IDataNavigator* GetDataNavigator(void)override;
42 
43 protected: // virtual operation to override
44 
48  virtual void RegisterComponentPorts(void) = 0;
49 
50 protected: // fields
51  DataInfoProvider dataInfoProvider;
52 };
53 
54 }}}} // end of namespace Arp::Plc::Commons::Meta
Namespace for interfaces and classes of Execution and Sychronization Manager (ESM)
Definition: DataInfoProvider.hpp:30
Definition: MetaComponentBase.hpp:20
Root namespace for the PLCnext API
Definition: IMetaComponent.hpp:16
Definition: IDataInfoProvider.hpp:14
Namespace of the Application Component Framework (ACF)