PLCnext API Documentation  22.9.0.33
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 
26 {
27 public: // construction/destruction
28  // TODO mark explicit
31  MetaComponentBase(const char* libraryNamespace);
33  ~MetaComponentBase() override = default;
34 
35 public: // IComponent operations
37  void SetupSettings(void);
38 
41  ARP_DEPRECATED("Call MetaComponentBase::SetupSettings() in the component's SetupSettings() method instead.")
42  void SetupConfig(void);
43 
46  ARP_DEPRECATED("Call MetaComponentBase::Dispose() in the component's Dispose() method instead.")
47  void ResetConfig(void);
48 
50  void Dispose(void);
51 
52 public: // IMetaComponentBase operations
53  IDataInfoProvider& GetDataInfoProvider(bool useBackgroundDomain) override;
54  IDataNavigator* GetDataNavigator(void)override;
55 
56 protected: // virtual operation to override
57 
61  virtual void RegisterComponentPorts(void) = 0;
62 
63 protected: // fields
64  DataInfoProvider dataInfoProvider;
65 };
66 
67 }}}} // end of namespace Arp::Plc::Commons::Meta
Provides information of component root variables
Definition: DataInfoProvider.hpp:36
Interface to provide information about component roots
Definition: IDataInfoProvider.hpp:18
Interface for all components providing meta data
Definition: IMetaComponent.hpp:20
Base class for components providing meta data
Definition: MetaComponentBase.hpp:26
ARP_DEPRECATED("Call MetaComponentBase::SetupSettings() in the component's SetupSettings() method instead.") void SetupConfig(void)
SetupConfig
~MetaComponentBase() override=default
Destructs this object
MetaComponentBase(const char *libraryNamespace)
Constructs an MetaComponentBase instance
void SetupSettings(void)
Sets up the internal DataInfoProvider to enable providing meta data
Namespace for interfaces and classes of Execution and Sychronization Manager (ESM)
Definition: IProgram.hpp:11
This is the namespace of the Application Component Framework.
Definition: ComponentBase.hpp:13
Root namespace for the PLCnext API