PLCnext API Documentation 25.0.2.69
IMetaComponent.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Plc/Commons/Meta/IChangeNavigator.hpp"
9#include "Arp/Plc/Commons/Meta/IDataInfoProvider.hpp"
10
11namespace Arp { namespace Plc { namespace Commons { namespace Meta
12{
13
14class IDataNavigator;
15
20{
21public: // usings
23 using Ptr = std::shared_ptr<IMetaComponent>;
24
25protected: // construction/destruction
27 IMetaComponent(void) = default;
29 virtual ~IMetaComponent(void) = default;
30
31public: // abstract operations
35 virtual IDataInfoProvider& GetDataInfoProvider(bool useBackgroundDomain) = 0;
36
40 virtual IDataNavigator* GetDataNavigator(void) = 0;
41
42private: // deleted methods (for non-copyable classes)
43 IMetaComponent(const IMetaComponent& arg) = delete;
44 IMetaComponent& operator=(const IMetaComponent& arg) = delete;
45};
46
47}}}} // end of namespace Arp::Plc::Commons::Meta
Interface to provide information about component roots
Definition: IDataInfoProvider.hpp:18
Interface for all components providing meta data
Definition: IMetaComponent.hpp:20
virtual IDataInfoProvider & GetDataInfoProvider(bool useBackgroundDomain)=0
Gets the IDataInfoProvider of this component.
std::shared_ptr< IMetaComponent > Ptr
std::shared_ptr to IMetaComponent
Definition: IMetaComponent.hpp:23
IMetaComponent(void)=default
Constructs an IMetaComponent instance.
virtual IDataNavigator * GetDataNavigator(void)=0
Gets the specialized IDataNavigator of this component.
virtual ~IMetaComponent(void)=default
Destructs this instance and frees all resources.
Root namespace for the PLCnext API