supla-device
Loading...
Searching...
No Matches
subdevice_pairing_handler.h
1// SPDX-FileCopyrightText: AC SOFTWARE SP. Z O.O.
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#ifndef SRC_SUPLA_DEVICE_SUBDEVICE_PAIRING_HANDLER_H_
5#define SRC_SUPLA_DEVICE_SUBDEVICE_PAIRING_HANDLER_H_
6
7#include <stdint.h>
8#include <supla-common/proto.h>
9
10namespace Supla {
11namespace Protocol {
12class SuplaSrpc;
13} // namespace Protocol
14
15namespace Device {
16
18 public:
19 virtual ~SubdevicePairingObserver() = default;
20
21 virtual void onSubdevicePairingStarted(uint16_t maximumDurationSec) = 0;
22 virtual void onSubdevicePairingFinished(
23 const TCalCfg_SubdevicePairingResult &result) = 0;
24};
25
27 public:
28 virtual ~SubdevicePairingHandler() = default;
29
30 virtual bool startPairing(Supla::Protocol::SuplaSrpc *srpc,
32
33 void setPairingObserver(SubdevicePairingObserver *newObserver) {
34 observer = newObserver;
35 }
36
37 protected:
38 void notifySubdevicePairingStarted(uint16_t maximumDurationSec) {
39 if (observer != nullptr) {
40 observer->onSubdevicePairingStarted(maximumDurationSec);
41 }
42 }
43
44 void notifySubdevicePairingFinished(
45 const TCalCfg_SubdevicePairingResult &result) {
46 if (observer != nullptr) {
47 observer->onSubdevicePairingFinished(result);
48 }
49 }
50
51 private:
52 SubdevicePairingObserver *observer = nullptr;
53};
54
55} // namespace Device
56} // namespace Supla
57
58
59#endif // SRC_SUPLA_DEVICE_SUBDEVICE_PAIRING_HANDLER_H_
Definition subdevice_pairing_handler.h:26
Definition subdevice_pairing_handler.h:17
Definition supla_srpc.h:47
Definition proto.h:2278