PLCnext API Documentation 25.6.0.37
TicDataTypes.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Core/PimplPtr.hxx"
9#include "Arp/Io/Commons/Configuration/TicBase.hpp"
10#include "Arp/Plc/Meta/Commons/Io/TypeDefinition.hpp"
11#include <vector>
12
13namespace Arp::Io::Commons::Configuration
14{
15
20class ARP_EXPORT TicDataTypes : public TicBase
21{
22public: // Impl forward declaration
23 class Impl;
24
25public: // usings
26 using Ptr = std::shared_ptr<TicDataTypes>;
28 using TypeDefinitions = std::vector<TypeDefinition>;
29
30public: // construction
31 TicDataTypes(void);
32
33 // canonical construction/destruction/assignment
34 TicDataTypes(const TicDataTypes& arg) = delete;
35 TicDataTypes(TicDataTypes&& arg)noexcept;
36 TicDataTypes& operator=(const TicDataTypes& arg) = delete;
38 ~TicDataTypes(void)override;
39
40public: // operators
41
42public: // static operations
43 static const char* GetTicElementName(void);
44
45public: // setter/getter operations
46
47public: // operations
48 TypeDefinitions CreateTypeDefinitions(void)const;
49 bool TryReadAttribute(TicReader& reader, const String& attributeName)final;
50 bool TryCreateElement(const String& elementName, ChildPtr& result)final;
51 void OnReadEnd(void)override;
52
53public: // internal operations
54 Impl& GetImpl(void);
55 const Impl& GetImpl(void)const;
56
57private: // Impl usings
58 using Pimpl = PimplPtr<Impl>;
59
60private: // Impl fields
61 Pimpl pimpl;
62};
63
64} // end of namespace Arp::Io::Commons::Configuration
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
This class is the base class for all predefined Tic elements.
Definition: TicBase.hpp:42
This class is used to read a entity of the type 'IO:DataTypes' from a TIC file.
Definition: TicDataTypes.hpp:21
TicDataTypes & operator=(TicDataTypes &&arg) noexcept
The default move-assignment operator.
~TicDataTypes(void) override
The default destructor.
TicDataTypes(TicDataTypes &&arg) noexcept
The default move constructor.
This class is used to read the content of Tic files.
Definition: TicReader.hpp:24
This class is used to define a structured data type for IO variables
Definition: TypeDefinition.hpp:27