SinricPro Library
Loading...
Searching...
No Matches
SinricProQueue.h
1/*
2 * Copyright (c) 2021 Sinric. All rights reserved.
3 * Licensed under Creative Commons Attribution-Share Alike (CC BY-SA)
4 *
5 * This file is part of the Sinric Pro (https://github.com/sinricpro/)
6 */
7
8#pragma once
9
10#include <queue>
11
12#include "SinricProNamespace.h"
13namespace SINRICPRO_NAMESPACE {
14
15typedef enum {
16 IF_UNKNOWN = 0,
17 IF_WEBSOCKET = 1,
18 IF_UDP = 2
19} interface_t;
20
21class SinricProMessage {
22public:
23 SinricProMessage(interface_t interface, const char* message);
24 ~SinricProMessage();
25 const char* getMessage() const;
26 interface_t getInterface() const;
27private:
28 interface_t _interface;
29 char* _message;
30};
31
32SinricProMessage::SinricProMessage(interface_t interface, const char* message) :
33 _interface(interface) {
34 _message = strdup(message);
35};
36
37SinricProMessage::~SinricProMessage() {
38 if (_message) free(_message);
39};
40
41const char* SinricProMessage::getMessage() const {
42 return _message;
43};
44
45interface_t SinricProMessage::getInterface() const {
46 return _interface;
47};
48
49
50typedef std::queue<SinricProMessage*> SinricProQueue_t;
51
52} // SINRICPRO_NAMESPACE