PLCnext API Documentation  20.6.0.30321
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 
15 {
16 public: // typedefs
17  typedef std::shared_ptr<IDataInfoProvider> Ptr;
18 
19 protected: // construction/destruction
21  IDataInfoProvider(void) = default;
23  virtual ~IDataInfoProvider(void) = default;
24 
25 public: // abstract operations
26  virtual IEnumerator<const DataInfo&>::Ptr GetRoots(void) = 0;
27  virtual DataInfo GetRoot(const String& name) = 0;
28 
29 private: // deleted methods (for non-copyable classes)
30  IDataInfoProvider(const IDataInfoProvider& arg) = delete;
31  IDataInfoProvider& operator=(const IDataInfoProvider& arg) = delete;
32 };
33 
34 }}}} // end of namespace Arp::Plc::Commons::Meta
virtual ~IDataInfoProvider(void)=default
Destructs this instance and frees all resources.
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom...
Definition: IEnumerator.hxx:47
Root namespace for the PLCnext API
Provides detailed informations for the respective data object.
Definition: DataInfo.hpp:31
Definition: IDataInfoProvider.hpp:14
IDataInfoProvider(void)=default
Constructs an IDataInfoProvider instance.