PLCnext API Documentation 25.0.2.69
TicPorts.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
11namespace Arp::Io::Commons::Configuration
12{
13
23class ARP_EXPORT TicPorts : public TicBase
24{
25public: // Impl forward declaration
26 class Impl;
27
28public: // usings
29 using Ptr = std::shared_ptr<TicPorts>;
30
31public: // canonical construction/destruction/assignment
32 TicPorts(const TicPorts& arg) = delete;
33 TicPorts(TicPorts&& arg)noexcept;
34 TicPorts& operator=(const TicPorts& arg) = delete;
35 TicPorts& operator=(TicPorts&& arg)noexcept;
36 ~TicPorts(void) override;
37
38public: // construction/destruction/assignment
39 TicPorts(void);
40
41public: // static operations
42 static const char* GetTicElementName(void);
43
44public: // setter/getter operations
45 size_t GetPortCount(void)const;
46
47public: // operations
48 // Inherited via TicBase
49 bool TryReadAttribute(TicReader& reader, const String& attributeName)final;
50 bool TryCreateElement(const String& elementName, ChildPtr& result)final;
51 void OnReadEnd() override;
52
53public: // Impl 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 and store a single Tic ports element called IO:Ports.
Definition: TicPorts.hpp:24
~TicPorts(void) override
Default destructor.
TicPorts & operator=(TicPorts &&arg) noexcept
Default move-assignment operator.
TicPorts(TicPorts &&arg) noexcept
Default move constructor.
This class is used to read the content of Tic files.
Definition: TicReader.hpp:24