PLCnext API Documentation 25.0.2.69
IMetaLibrary.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Plc/Commons/Meta/ITypeInfoProvider.hpp"
9#include "Arp/Plc/Commons/Meta/IChangeNavigator.hpp"
10
11namespace Arp { namespace Plc { namespace Commons { namespace Meta
12{
13
14using namespace Arp;
15
19{
20public: // typedefs
22 using Ptr = std::shared_ptr<IMetaLibrary>;
23
24protected: // construction/destruction
26 IMetaLibrary(void) = default;
28 virtual ~IMetaLibrary(void) = default;
29
30public: // abstract operations
33 virtual const char* GetNamespace(void) = 0;
34
38 virtual ITypeInfoProvider& GetTypeInfoProvider(bool useBackgroundDomain) = 0;
39
43
44private: // deleted methods (for non-copyable classes)
45 IMetaLibrary(const IMetaLibrary& arg) = delete;
46 IMetaLibrary& operator=(const IMetaLibrary& arg) = delete;
47};
48
49}}}} // end of namespace Arp::Plc::Commons::Meta
Enables switching of counterparts during download change
Definition: IChangeNavigator.hpp:17
Interface for all libraries providing meta data
Definition: IMetaLibrary.hpp:19
std::shared_ptr< IMetaLibrary > Ptr
std::shared_ptr to IMetaLibrary
Definition: IMetaLibrary.hpp:22
virtual IChangeNavigator * GetChangeNavigator(void)=0
Gets the specialized IChangeNavigator of this component.
virtual ~IMetaLibrary(void)=default
Destructs this instance and frees all resources.
virtual const char * GetNamespace(void)=0
Gets the namespace of this library.
IMetaLibrary(void)=default
Constructs an IMetaLibrary instance.
virtual ITypeInfoProvider & GetTypeInfoProvider(bool useBackgroundDomain)=0
Gets the ITypeInfoProvider of this library.
Interface to type information of a library
Definition: ITypeInfoProvider.hpp:24
Root namespace for the PLCnext API