supla-device
Loading...
Searching...
No Matches
channel_conflict_resolver.h
1/*
2 Copyright (C) AC SOFTWARE SP. Z O.O
3
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18
19#ifndef SRC_SUPLA_DEVICE_CHANNEL_CONFLICT_RESOLVER_H_
20#define SRC_SUPLA_DEVICE_CHANNEL_CONFLICT_RESOLVER_H_
21
22#include <stdint.h>
23
24namespace Supla {
25namespace Device {
26
28 public:
29 virtual ~ChannelConflictResolver() = default;
30 virtual bool onChannelConflictReport(
31 uint8_t *channelReport,
32 uint8_t channelReportSize,
33 bool hasConfilictInvalidType,
34 bool hasConfilictChannelMissingOnServer,
35 bool hasConflictChannelMissingOnDevice) = 0;
36};
37
39 ChannelConflictResolver *resolver = nullptr;
40 ChannelConflictResolverListItem *next = nullptr;
41};
42
44 public:
46
47 bool add(ChannelConflictResolver *resolver);
48 bool remove(ChannelConflictResolver *resolver);
49 void clear();
50 bool contains(ChannelConflictResolver *resolver) const;
51 bool isEmpty() const;
52
53 bool onChannelConflictReport(
54 uint8_t *channelReport,
55 uint8_t channelReportSize,
56 bool hasConfilictInvalidType,
57 bool hasConfilictChannelMissingOnServer,
58 bool hasConflictChannelMissingOnDevice) override;
59
60 private:
61 ChannelConflictResolverListItem *first = nullptr;
62};
63
64} // namespace Device
65} // namespace Supla
66
67#endif // SRC_SUPLA_DEVICE_CHANNEL_CONFLICT_RESOLVER_H_
Definition channel_conflict_resolver.h:43
Definition channel_conflict_resolver.h:27
Definition channel_conflict_resolver.h:38