supla-device
Loading...
Searching...
No Matches
channel_element.h
1// SPDX-FileCopyrightText: AC SOFTWARE SP. Z O.O.
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#ifndef SRC_SUPLA_CHANNEL_ELEMENT_H_
5#define SRC_SUPLA_CHANNEL_ELEMENT_H_
6
7#include <supla/channels/channel.h>
8
9#include <new>
10
11#include "element_with_channel_actions.h"
12
13namespace Supla {
14
16 public:
17 explicit ChannelElement(int channelNumber = -1);
18 ~ChannelElement() override;
19 Channel *getChannel() override;
20 const Channel *getChannel() const override;
21
22 protected:
23 ChannelElement(Channel &externalChannel, ElementMode mode);
24
25 alignas(Channel) unsigned char ownedChannelStorage[sizeof(Channel)] = {};
26 Channel &channel;
27 bool ownsChannel = false;
28};
29
30}; // namespace Supla
31
32#endif // SRC_SUPLA_CHANNEL_ELEMENT_H_
Definition channel_element.h:15
Definition channel.h:26
Definition element_with_channel_actions.h:66