PLCnext API Documentation 25.0.2.69
IoLibraryBase.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Core/PimplPtr.hxx"
9#include "Arp/Base/Acf/Commons/LibraryBase.hpp"
10
11namespace Arp::Io::Commons
12{
13
15
17class ARP_EXPORT IoLibraryBase : public LibraryBase
18{
19public: // Impl forward declaration
20 class Impl;
21
22public: // canonical construction/destruction/assignment
23 IoLibraryBase(const IoLibraryBase& arg) = delete;
24 IoLibraryBase(IoLibraryBase&& arg)noexcept = delete;
25 IoLibraryBase& operator=(const IoLibraryBase& arg) = delete;
26 IoLibraryBase& operator=(IoLibraryBase&& arg)noexcept = delete;
27 ~IoLibraryBase(void)override;
28
29public: // construction
30 explicit IoLibraryBase(const ArpVersion& libraryVersion);
31
32public: // Impl operations
33 Impl& GetImpl(void);
34 const Impl& GetImpl(void)const;
35
36private: // Impl usings
37 using Pimpl = PimplPtr<Impl>;
38
39private: // Impl fields
40 Pimpl pimpl;
41
42};
43
44} // end of namespace Arp::Io::Commons::Io
This class serves as base class of all Library classes in Arp component projects.
Definition: LibraryBase.hpp:18
This class compounds Arp build version and infos.
Definition: ArpVersion.hpp:21
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
Base class for libraries of IO components
Definition: IoLibraryBase.hpp:18
~IoLibraryBase(void) override
Default destructor.
Namespace for interface types of the IO domain