8#include "Arp/System/Core/Enumerator.hxx" 
    9#include "Arp/Plc/Commons/Meta/TypeInfo.hpp" 
   10#include "Arp/Plc/Commons/Meta/TypeSystem/TypeDefinition.hpp" 
   11#include <initializer_list> 
   15namespace Arp { 
namespace Plc { 
namespace Commons { 
namespace Meta
 
   18class TypeInfoProvider;
 
   21namespace Arp { 
namespace Plc { 
namespace Commons { 
namespace Meta { 
namespace TypeSystem
 
   30    using TypeDefinitions = std::map<String, TypeDefinition>; 
 
   36    explicit TypeDomain(
const char* libraryNamespace);
 
   37    TypeDomain(
const char* libraryNamespace, 
const std::initializer_list<TypeDefinition>& typeDefinitionList);
 
   53    void AddTypeDefinitions(
const std::initializer_list<TypeDefinition>& typeDefinitionList);
 
   63    TypeDefinitions typeDefinitions;
 
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
 
IEnumerator over this library's TypeInfos
Definition: TypeDomain.cpp:13
 
Container for the type information of a library
Definition: TypeDomain.hpp:26
 
const char * GetLibraryNamespace(void) const
Returns the namespace of the library
Definition: TypeDomain.cpp:43
 
~TypeDomain(void)=default
Destructs this instance and frees all resources.
 
void AddTypeDefinition(TypeDefinition &&typeDefinition)
Adds a TypeDefinition to this collection
Definition: TypeDomain.cpp:61
 
TypeDomain(const char *libraryNamespace)
Constructs an TypeDomain instance.
Definition: TypeDomain.cpp:30
 
IEnumerator< TypeInfo >::Ptr CreateTypeInfoEnumerator(void) const
Returns an IEnumerator over this library's TypeInfos
Definition: TypeDomain.cpp:82
 
void ReplaceTypeDefinition(TypeDefinition &&typeDefinition)
Replaces a TypeDefinition by a new description
Definition: TypeDomain.cpp:73
 
TypeDomain(const TypeDomain &arg)=default
Copy constructor.
 
TypeDomain(TypeDomain &&arg)=default
Move constructor.
 
void AddTypeDefinitions(const std::initializer_list< TypeDefinition > &typeDefinitionList)
Adds a list of TypeDefinitions to this collection
Definition: TypeDomain.cpp:50
 
TypeDomain & operator=(const TypeDomain &arg)=default
Copy assignment operator.
 
TypeDomain & operator=(TypeDomain &&arg)=default
Move assignment operator.
 
Root namespace for the PLCnext API