PLCnext API Documentation 23.6.0.37
IDataInfoProvider.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
8#include "Arp/System/Core/IEnumerator.hxx"
9#include "Arp/Plc/Commons/Meta/DataInfo.hpp"
10
11namespace Arp { namespace Plc { namespace Commons { namespace Meta
12{
13
18{
19public: // typedefs
21 using Ptr = std::shared_ptr<IDataInfoProvider>;
22
23protected: // construction/destruction
25 IDataInfoProvider(void) = default;
27 virtual ~IDataInfoProvider(void) = default;
28
29public: // abstract operations
32
36 virtual DataInfo GetRoot(const String& name) = 0;
37
38private: // deleted methods (for non-copyable classes)
39 IDataInfoProvider(const IDataInfoProvider& arg) = delete;
40 IDataInfoProvider& operator=(const IDataInfoProvider& arg) = delete;
41};
42
43}}}} // end of namespace Arp::Plc::Commons::Meta
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom.
Definition: IEnumerator.hxx:48
Provides detailed informations for the respective data object.
Definition: DataInfo.hpp:32
Interface to provide information about component roots
Definition: IDataInfoProvider.hpp:18
IDataInfoProvider(void)=default
Constructs an IDataInfoProvider instance.
virtual IEnumerator< constDataInfo & >::Ptr GetRoots(void)=0
Returns an IEnumerator to enumerate all root variables of the component
std::shared_ptr< IDataInfoProvider > Ptr
std::shared_ptr to IDataInfoProvider
Definition: IDataInfoProvider.hpp:21
virtual ~IDataInfoProvider(void)=default
Destructs this instance and frees all resources.
virtual DataInfo GetRoot(const String &name)=0
Returns the requested root variable of the component
Root namespace for the PLCnext API