PLCnext API Documentation 25.0.2.69
ITypeInfoProvider.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/System/Core/IEnumerator.hxx"
9#include "Arp/Plc/Commons/Meta/TypeInfo.hpp"
10#include "Arp/Plc/Commons/Meta/ChildTypeInfo.hpp"
11#include "Arp/Plc/Commons/Meta/TypeIdentifier.hpp"
12
13namespace Arp { namespace Plc { namespace Commons { namespace Meta
14{
15
16using namespace Arp;
17
24{
25public: // usings
27 using Ptr = std::shared_ptr<ITypeInfoProvider>;
28
29protected: // construction/destruction
31 ITypeInfoProvider(void) = default;
33 virtual ~ITypeInfoProvider(void) = default;
34
35public: // abstract operations
39
44
48 virtual TypeInfo GetTypeInfo(const TypeIdentifier& typeId) = 0;
49
54 virtual ChildTypeInfo GetChildTypeInfo(const TypeIdentifier& type, const String& childName) = 0;
55
56private: // deleted methods (for non-copyable classes)
57 ITypeInfoProvider(const ITypeInfoProvider& arg) = delete;
58 ITypeInfoProvider& operator=(const ITypeInfoProvider& arg) = delete;
59};
60
61}}}} // end of namespace Arp::Plc::Commons::Meta
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom.
Definition: IEnumerator.hxx:49
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Provides detailed type information of a child within TypeBrowser interface.
Definition: ChildTypeInfo.hpp:27
Interface to type information of a library
Definition: ITypeInfoProvider.hpp:24
virtual IEnumerator< ChildTypeInfo >::Ptr GetChilds(const TypeIdentifier &type)=0
Gets a IEnumerator over all ChildTypeInfos of the type
virtual IEnumerator< TypeInfo >::Ptr GetTypes(void)=0
Gets a IEnumerator over all TypeInfos of this library
std::shared_ptr< ITypeInfoProvider > Ptr
std::shared_ptr to ITypeInfoProvider
Definition: ITypeInfoProvider.hpp:27
virtual TypeInfo GetTypeInfo(const TypeIdentifier &typeId)=0
Gets the TypeInfo of a type
ITypeInfoProvider(void)=default
Constructs an ITypeInfoProvider instance.
virtual ~ITypeInfoProvider(void)=default
Destructs this instance and frees all resources.
virtual ChildTypeInfo GetChildTypeInfo(const TypeIdentifier &type, const String &childName)=0
Gets the ChildTypeInfo of a type's child
Identifies a type descriptions
Definition: TypeIdentifier.hpp:25
Provides detailed type information within TypeBrowser interface.
Definition: TypeInfo.hpp:28
Root namespace for the PLCnext API