PLCnext API Documentation 25.0.2.69
ITypeNavigator.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
19{
20public: // usings
22 using Ptr = std::shared_ptr<ITypeNavigator>;
23
24protected: // construction/destruction
26 ITypeNavigator(void) = default;
28 ITypeNavigator(const ITypeNavigator& arg) = default;
30 ITypeNavigator& operator=(const ITypeNavigator& arg) = default;
32 virtual ~ITypeNavigator(void) = default;
33
34public: // abstract operations
39 virtual TypeInfo GetTypeInfo(const TypeIdentifier& typeId, bool useBackgroundDomain) = 0;
40
45 virtual void GetChilds(const TypeIdentifier& typeId, std::vector<ChildTypeInfo>& childs, bool useBackgroundDomain) = 0;
46
47
53 virtual ChildTypeInfo GetChild(const TypeIdentifier& typeId, const String& childName, bool useBackgroundDomain) = 0;
54};
55
56}}}} // end of namespace Arp::Plc::Commons::Meta
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
Provide type information
Definition: ITypeNavigator.hpp:19
std::shared_ptr< ITypeNavigator > Ptr
std::shared_ptr to ITypeNavigator
Definition: ITypeNavigator.hpp:22
virtual TypeInfo GetTypeInfo(const TypeIdentifier &typeId, bool useBackgroundDomain)=0
Gets TypeInfo for a type
virtual ChildTypeInfo GetChild(const TypeIdentifier &typeId, const String &childName, bool useBackgroundDomain)=0
Gets the ChildTypeInfo of a type child
ITypeNavigator(void)=default
Constructs an ITypeNavigator instance.
virtual void GetChilds(const TypeIdentifier &typeId, std::vector< ChildTypeInfo > &childs, bool useBackgroundDomain)=0
Gets the ChildTypeInfos of a type
ITypeNavigator & operator=(const ITypeNavigator &arg)=default
Assigns an ITypeNavigator instance.
virtual ~ITypeNavigator(void)=default
Destructs this instance and frees all resources.
ITypeNavigator(const ITypeNavigator &arg)=default
Copies an ITypeNavigator instance.
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