PLCnext API Documentation 26.0.1.58
RscServiceHandle.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/Rsc/Commons/Rsc.hpp"
10
11namespace Arp::Base::Rsc::Commons::Services
12{
13
21class ARP_EXPORT RscServiceHandle
22{
23public: // Impl forward declaration
24 class Impl;
25 class Hash;
26
27public: // construction
29 RscServiceHandle(RscHandle serviceProviderHandle, RscHandle serviceHandle);
30
31 // canonical construction/destruction/assignment
37
38public: // setter/getter operations
39 void SetServiceHandle(RscHandle value);
40 RscHandle GetServiceHandle(void)const;
41 void SetServiceProviderHandle(RscHandle value);
42 RscHandle GetServiceProviderHandle(void)const;
43 size_t GetHashValue(void)const;
44
45public: // operators
46 friend bool operator==(const RscServiceHandle& lhs, const RscServiceHandle& rhs);
47
48public: // internal operations
49 Impl& GetImpl(void);
50 const Impl& GetImpl(void)const;
51
52private: // Impl usings
54
55private: // Impl fields
56 Pimpl pimpl;
57};
58
59} // end of namespace Arp::Base::Rsc::Commons::Services
Adapter class to implement PImpl idiom.
Definition: PimplPtr.hxx:15
This class is used for adressing RSC service instances remotely.
Definition: RscServiceHandle.hpp:22
RscServiceHandle & operator=(const RscServiceHandle &arg)
The default copy-assignment operator.
RscServiceHandle(RscServiceHandle &&arg) noexcept
The default move constructor.
RscServiceHandle & operator=(RscServiceHandle &&arg) noexcept
The default move-assignment operator.
RscServiceHandle(void)
The default constructor creates an empty RscServiceHandle.
RscServiceHandle(const RscServiceHandle &arg)
The default copy constructor.