PLCnext API Documentation 23.6.0.37
TypeInfoProvider.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6#pragma once
8#include "Arp/Plc/Commons/Meta/ITypeInfoProvider.hpp"
9#include "Arp/Plc/Commons/Meta/TypeSystem/TypeDomain.hpp"
10
11namespace Arp { namespace Plc { namespace Commons { namespace Meta
12{
13
14
16
17
20{
21public: // construction/destruction
25 TypeInfoProvider(const TypeInfoProvider& arg) = default;
33 ~TypeInfoProvider(void) override = default;
34
35public: // setter/getter operations
36 TypeDomain& GetTypeDomain(void);
37
38public: // ITypeInfoProvider operations
41 TypeInfo GetTypeInfo(const TypeIdentifier& typeId)override;
42 ChildInfo GetChildInfo(const TypeIdentifier& type, const String& childName)override;
43 ChildTypeInfo GetChildTypeInfo(const TypeIdentifier& type, const String& childName)override;
44
45private: // fields
46 TypeDomain& typeDomain;
47};
48
50// inline methods of class TypeInfoProvider
51inline TypeDomain& TypeInfoProvider::GetTypeDomain()
52{
53 return this->typeDomain;
54}
55
56}}}} // end of namespace Arp::Plc::Commons::Meta
Declares the interface of the enumerator pattern, which is leaned on .NET enumerator idiom.
Definition: IEnumerator.hxx:48
Provides detailed type information of a child within TypeBrowser interface.
Definition: ChildTypeInfo.hpp:27
Interface to type information of a library
Definition: ITypeInfoProvider.hpp:25
Identifies a type descriptions
Definition: TypeIdentifier.hpp:24
Provides type information of one library
Definition: TypeInfoProvider.hpp:20
TypeInfoProvider(TypeDomain &typeDomain)
Constructs an TypeInfoProvider instance.
~TypeInfoProvider(void) override=default
Destructs this instance and frees all resources.
IEnumerator< TypeInfo >::Ptr GetTypes(void) override
Gets a IEnumerator over all TypeInfos of this library
TypeInfoProvider(const TypeInfoProvider &arg)=default
Copy constructor.
TypeInfoProvider & operator=(const TypeInfoProvider &arg)=default
Copy assignment operator.
ChildInfo GetChildInfo(const TypeIdentifier &type, const String &childName) override
Gets the ChildInfo of a type's child
TypeInfoProvider & operator=(TypeInfoProvider &&arg)=default
Move assignment operator.
IEnumerator< ChildTypeInfo >::Ptr GetChilds(const TypeIdentifier &type) override
Gets a IEnumerator over all ChildTypeInfos of the type
ChildTypeInfo GetChildTypeInfo(const TypeIdentifier &type, const String &childName) override
Gets the ChildTypeInfo of a type's child
TypeInfo GetTypeInfo(const TypeIdentifier &typeId) override
Gets the TypeInfo of a type
TypeInfoProvider(TypeInfoProvider &&arg)=default
Move constructor.
Provides detailed type information within TypeBrowser interface.
Definition: TypeInfo.hpp:28
Container for the type information of a library
Definition: TypeDomain.hpp:26
Namespace for the type information of the Meta component
Definition: DataInfoDeduction.hxx:11
Root namespace for the PLCnext API