PLCnext API Documentation  20.6.0.30321
IMetaLibrary.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/Plc/Commons/Meta/ITypeInfoProvider.hpp"
9 #include "Arp/Plc/Commons/Meta/IChangeNavigator.hpp"
10 
11 namespace Arp { namespace Plc { namespace Commons { namespace Meta
12 {
13 
14 using namespace Arp;
15 
17 {
18 public: // typedefs
19  typedef std::shared_ptr<IMetaLibrary> Ptr;
20 
21 protected: // construction/destruction
23  IMetaLibrary(void) = default;
25  virtual ~IMetaLibrary(void) = default;
26 
27 public: // abstract operations
30  virtual const char* GetNamespace(void) = 0;
31 
35  virtual ITypeInfoProvider& GetTypeInfoProvider(bool useBackgroundDomain) = 0;
36 
39  virtual IChangeNavigator* GetChangeNavigator(void) = 0;
40 
41 private: // deleted methods (for non-copyable classes)
42  IMetaLibrary(const IMetaLibrary& arg) = delete;
43  IMetaLibrary& operator=(const IMetaLibrary& arg) = delete;
44 };
45 
46 }}}} // end of namespace Arp::Plc::Commons::Meta
Definition: ITypeInfoProvider.hpp:19
Definition: IMetaLibrary.hpp:16
Root namespace for the PLCnext API
Definition: IChangeNavigator.hpp:13