PLCnext API Documentation  22.9.0.33
IDataInfoProvider.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/System/Core/IEnumerator.hxx"
9 #include "Arp/Plc/Commons/Meta/DataInfo.hpp"
10 
11 namespace Arp { namespace Plc { namespace Commons { namespace Meta
12 {
13 
18 {
19 public: // typedefs
21  using Ptr = std::shared_ptr<IDataInfoProvider>;
22 
23 protected: // construction/destruction
25  IDataInfoProvider(void) = default;
27  virtual ~IDataInfoProvider(void) = default;
28 
29 public: // abstract operations
32 
36  virtual DataInfo GetRoot(const String& name) = 0;
37 
38 private: // 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
virtual IEnumerator< const DataInfo & >::Ptr GetRoots(void)=0
Returns an IEnumerator to enumerate all root variables of the component
IDataInfoProvider(void)=default
Constructs an IDataInfoProvider instance.
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