PLCnext API Documentation  20.6.0.30321
ChangeDataInfoProvider.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/System/Core/Enumerator.hxx"
9 #include "Arp/Plc/Commons/Meta/IDataInfoProvider.hpp"
10 #include <map>
11 
12 namespace Arp { namespace Plc { namespace Commons { namespace Meta
13 {
14 
15 // forwards
16 class DataInfoProvider;
17 
19 {
20 private: // nested types
21  class RootsEnumerator : public Enumerator<const DataInfo&>
22  {
23  public: // construcion
24  RootsEnumerator(DataInfoProvider& dataInfoProvider);
25 
26  public: // Enumerator<DataInfo> operations
27  bool MoveNext(void)override;
28 
29  private:
31  };
32 
33 public: // construction/destruction
35  ChangeDataInfoProvider(DataInfoProvider& foregroundProvider);
45  ~ChangeDataInfoProvider(void) = default;
46 
47 public: // IDataInfoProvider operations
48  IEnumerator<const DataInfo&>::Ptr GetRoots(void)override;
49  DataInfo GetRoot(const String& name)override;
50 
51 private: // fields
52  DataInfoProvider& foregroundProvider;
53 };
54 
56 // inline methods of class ChangeDataInfoProvider
57 
58 }}}} // end of namespace Arp::Plc::Commons::Meta
ChangeDataInfoProvider & operator=(const ChangeDataInfoProvider &arg)=delete
Copy assignment operator.
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom...
Definition: IEnumerator.hxx:47
Definition: DataInfoProvider.hpp:30
ChangeDataInfoProvider(DataInfoProvider &foregroundProvider)
Constructs an ChangeDataInfoProvider instance.
~ChangeDataInfoProvider(void)=default
Destructs this instance and frees all resources.
Definition: ChangeDataInfoProvider.hpp:18
Root namespace for the PLCnext API
Provides detailed informations for the respective data object.
Definition: DataInfo.hpp:31
Definition: IDataInfoProvider.hpp:14
This class defines a base class for all enumerator implementations and some predefined enumerators as...
Definition: Enumerator.hxx:21