PdCom  5.3
Process data communication client
Loading...
Searching...
No Matches
Sasl.h
1/*****************************************************************************
2 *
3 * Copyright (C) 2021 Bjarne von Horn (vh at igh dot de).
4 *
5 * This file is part of the PdCom library.
6 *
7 * The PdCom library is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or (at your
10 * option) any later version.
11 *
12 * The PdCom library is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
15 * License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with the PdCom library. If not, see <http://www.gnu.org/licenses/>.
19 *
20 *****************************************************************************/
21
22#ifndef PDCOM5_SASL_H
23#define PDCOM5_SASL_H
24
25#include <pdcom5_export.h>
26
27namespace PdCom {
28namespace impl {
29class Process;
30}
31
41class PDCOM5_PUBLIC Sasl
42{
43 public:
44 Sasl();
45 Sasl(Sasl const &) = delete;
46 Sasl(Sasl &&) noexcept;
47 Sasl &operator=(Sasl &&) noexcept;
48 Sasl &operator=(Sasl const &) = delete;
49
50 protected:
65 bool loginStep(const char *mech, const char *clientData);
68 void logout();
69 ~Sasl();
70
71
72 private:
73 friend impl::Process;
74 std::weak_ptr<impl::Process> process_;
75
91 virtual void
92 loginReply(const char *mechlist, const char *serverData, int finished) = 0;
93};
94} // namespace PdCom
95
96#endif // PDCOM5_SASL_H
void logout()
Logout from server.
bool loginStep(const char *mech, const char *clientData)
Perform SASL login step.