PLCnext API Documentation 25.0.2.69
TicDocument.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/ITicSerializable.hpp"
10
11namespace Arp::Io::Commons::Configuration
12{
13
16class ARP_EXPORT TicDocument
17{
18public: // Impl forward declaration
19 class Impl;
20
21public: // usings
23 using ContentPtr = Content::Ptr;
24
25public: // canonical construction/destruction/assignment
26 TicDocument(const TicDocument& arg) = delete;
27 TicDocument(TicDocument&& arg)noexcept;
28 TicDocument& operator=(const TicDocument& arg) = delete;
30 virtual ~TicDocument(void);
31
32public: // construction
33 TicDocument(void);
34
35public: // setter/getter operations
36 const Content& GetContent(void)const;
37 ContentPtr GetContentPtr(void)const noexcept;
38
39public: // operations
40 void Load(const String& filename);
41
42public: // virtual operations to override
43 virtual ContentPtr CreateContent(const String& rootElementName);
44
45public: // Impl operations
46 Impl& GetImpl(void);
47 const Impl& GetImpl(void)const;
48
49private: // Impl usings
50 using Pimpl = PimplPtr<Impl>;
51
52private: // Impl fields
53 Pimpl pimpl;
54};
55
56} // 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
Interface for all classes which should be serializable from and to Tic doccuments.
Definition: ITicSerializable.hpp:17
This class reads a single Tic document and stores its content.
Definition: TicDocument.hpp:17
virtual ~TicDocument(void)
Default destructor.
TicDocument & operator=(TicDocument &&arg) noexcept
Default move-assignment operator.
TicDocument(TicDocument &&arg) noexcept
Default move constructor.