PLCnext API Documentation  22.9.0.33
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 
22 {
23 private: // nested types
25  class RootsEnumerator : public Enumerator<const DataInfo&>
26  {
27  public: // construcion
28  RootsEnumerator(DataInfoProvider& dataInfoProvider);
29 
30  public: // Enumerator<DataInfo> operations
31  bool MoveNext(void)override;
32 
33  private:
35  };
36 
37 public: // construction/destruction
49  ~ChangeDataInfoProvider(void) override = default;
50 
51 public: // IDataInfoProvider operations
53  DataInfo GetRoot(const String& name)override;
54 
55 private: // fields
56  DataInfoProvider& foregroundProvider;
57 };
58 
60 // inline methods of class ChangeDataInfoProvider
61 
62 }}}} // end of namespace Arp::Plc::Commons::Meta
This class defines a base class for all enumerator implementations and some predefined enumerators as...
Definition: Enumerator.hxx:22
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom.
Definition: IEnumerator.hxx:48
Decorator for DataInfoProvider to set IsBackgroundDomain = true
Definition: ChangeDataInfoProvider.hpp:22
DataInfo GetRoot(const String &name) override
Returns the requested root variable of the component
IEnumerator< const DataInfo & >::Ptr GetRoots(void) override
Returns an IEnumerator to enumerate all root variables of the component
ChangeDataInfoProvider(DataInfoProvider &foregroundProvider)
Constructs an ChangeDataInfoProvider instance.
ChangeDataInfoProvider & operator=(ChangeDataInfoProvider &&arg)=default
Move assignment operator
ChangeDataInfoProvider(const ChangeDataInfoProvider &arg)=delete
Copy constructor.
~ChangeDataInfoProvider(void) override=default
Destructs this instance and frees all resources.
ChangeDataInfoProvider(ChangeDataInfoProvider &&arg)=default
Move constructor
ChangeDataInfoProvider & operator=(const ChangeDataInfoProvider &arg)=delete
Copy assignment operator.
Provides information of component root variables
Definition: DataInfoProvider.hpp:36
Provides detailed informations for the respective data object.
Definition: DataInfo.hpp:32
Interface to provide information about component roots
Definition: IDataInfoProvider.hpp:18
Root namespace for the PLCnext API