PLCnext API Documentation 23.6.0.37
MetaComponentBase.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
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"
13namespace Arp { namespace Plc { namespace Commons { namespace Meta
14{
15
16using namespace Arp;
17using namespace Arp::System::Acf;
18using namespace Arp::Plc::Commons::Esm;
19
26{
27public: // construction/destruction
28 // TODO mark explicit
31 MetaComponentBase(const char* libraryNamespace);
33 ~MetaComponentBase() override = default;
34
35public: // 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
52public: // IMetaComponentBase operations
53 IDataInfoProvider& GetDataInfoProvider(bool useBackgroundDomain) override;
54 IDataNavigator* GetDataNavigator(void)override;
55
56protected: // virtual operation to override
57
61 virtual void RegisterComponentPorts(void) = 0;
62
63protected: // 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)
Deprecated! SetupConfig
~MetaComponentBase() override=default
Destructs this object
void Dispose(void)
Resets the internal DataInfoProvider
IDataNavigator * GetDataNavigator(void) override
Gets the specialized IDataNavigator of this component.
MetaComponentBase(const char *libraryNamespace)
Constructs an MetaComponentBase instance
void SetupSettings(void)
Sets up the internal DataInfoProvider to enable providing meta data
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.
Namespace for interfaces and classes of Execution and Sychronization Manager (ESM)
Definition: DynamicPortsProgramBase.hpp:14
This is the namespace of the Application Component Framework.
Definition: ComponentBase.hpp:13
Root namespace for the PLCnext API