PLCnext API Documentation 26.6.0.38
SecurityToken.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8#include "Arp/Base/Core/PimplPtr.hxx"
9
10namespace Arp::Base::Commons::Security
11{
12
17class ARP_EXPORT SecurityToken
18{
19public: // Impl forward declaration
20 class Impl;
21
22public: // usings
23 using Value = uint32;
24
25public: // construction
26 SecurityToken(Value value = GetNone());
27 // canonical construction/destruction/assignment
33
34public: // global operators
35 ARP_EXPORT friend bool operator<(const SecurityToken& lhs, const SecurityToken& rhs);
36 ARP_EXPORT friend bool operator==(const SecurityToken& lhs, const SecurityToken& rhs);
37
42 friend std::ostream& operator<<(std::ostream& os, const SecurityToken& token)
43 {
44 os << token.ToString();
45 return os;
46 }
47
52 friend std::istream& operator>>(std::istream& is, SecurityToken& token)
53 {
54 Value value{ 0 };
55 is >> value;
56 token = SecurityToken(value);
57 return is;
58 }
59
60public: // static operations
61 static Value GetNone(void);
62 static size_t GetSize(void);
63
64public: // setter/getter operations
65 bool HasValue(void)const;
66 Value GetValue(void)const;
67
68public: // operations
69 String ToString(void)const;
70
71public: // internal operations
72 Impl& GetImpl(void);
73 const Impl& GetImpl(void)const;
74
75private: // Impl usings
76 using Pimpl = PimplPtr<Impl, true>;
77
78private: // Impl fields
79 Pimpl pimpl;
80};
81
82} // end of namespace Arp::Base::Commons::Security
83
85// template specialization of SecurityToken formatter
86template<> struct fmt::formatter<Arp::Base::Commons::Security::SecurityToken> : public fmt::ostream_formatter
87{
88};
This class is used for authorization of arbitrary operations.
Definition: SecurityToken.hpp:18
friend std::ostream & operator<<(std::ostream &os, const SecurityToken &token)
The ostream operator is used for logging and string formatting.
Definition: SecurityToken.hpp:42
friend std::istream & operator>>(std::istream &is, SecurityToken &token)
The istream operator is used for string parsing.
Definition: SecurityToken.hpp:52
~SecurityToken(void)
The default destructor.
String ToString(void) const
Converts this security token to a string.
Definition: SecurityToken.cpp:90
SecurityToken(const SecurityToken &arg)
The default copy constructor.
SecurityToken & operator=(const SecurityToken &arg)
THe default copy-assignment operator.
SecurityToken(SecurityToken &&arg) noexcept
The default move constructor.
SecurityToken & operator=(SecurityToken &&arg) noexcept
The default move-assignment operator.
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
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:33
Root namespace for the PLCnext API