PLCnext API Documentation 25.0.2.69
MetaComponentBase.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/System/Acf/ComponentBase.hpp"
9#include "Arp/Plc/Commons/Meta/IMetaComponent.hpp"
10#include "Arp/Plc/Commons/Meta/DataInfoProvider.hpp"
11#include "Arp/Plc/Commons/Esm/ProgramProviderBase.hpp"
12namespace Arp { namespace Plc { namespace Commons { namespace Meta
13{
14
15using namespace Arp;
16using namespace Arp::System::Acf;
17using namespace Arp::Plc::Commons::Esm;
18
25{
26public: // construction/destruction
27 explicit MetaComponentBase(const char* libraryNamespace);
28
29public: // IComponent operations
30 void SetupSettings(void);
31
32 ARP_DEPRECATED("Call MetaComponentBase::SetupSettings() in the component's SetupSettings() method instead.")
33 void SetupConfig(void);
34
35 ARP_DEPRECATED("Call MetaComponentBase::Dispose() in the component's Dispose() method instead.")
36 void ResetConfig(void);
37
38 void Dispose(void);
39
40public: // IMetaComponentBase operations
41 IDataInfoProvider& GetDataInfoProvider(bool useBackgroundDomain) override;
42 IDataNavigator* GetDataNavigator(void)override;
43
44protected: // virtual operation to override
45
49 virtual void RegisterComponentPorts(void) = 0;
50
51protected: // fields
52 DataInfoProvider dataInfoProvider;
53};
54
55}}}} // 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:25
void Dispose(void)
Resets the internal DataInfoProvider
Definition: MetaComponentBase.cpp:42
IDataNavigator * GetDataNavigator(void) override
Gets the specialized IDataNavigator of this component.
Definition: MetaComponentBase.cpp:56
MetaComponentBase(const char *libraryNamespace)
Constructs an MetaComponentBase instance
Definition: MetaComponentBase.cpp:16
void SetupSettings(void)
Sets up the internal DataInfoProvider to enable providing meta data
Definition: MetaComponentBase.cpp:22
virtual void RegisterComponentPorts(void)=0
Registers the ports of this component with its DataInfoProvider
IDataInfoProvider & GetDataInfoProvider(bool useBackgroundDomain) override
Gets the IDataInfoProvider of this component.
Definition: MetaComponentBase.cpp:51
Namespace for interfaces and classes of Execution and Sychronization Manager (ESM)
This is the namespace of the Application Component Framework.
Definition: ComponentBase.hpp:72
Root namespace for the PLCnext API