SinricPro Library
SinricProQueue.h
1 /*
2  * Copyright (c) 2019 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 #ifndef __SINRICPRO_QUEUE_H__
9 #define __SINRICPRO_QUEUE_H__
10 
11 #include <queue>
12 
13 typedef enum {
14  IF_UNKNOWN = 0,
15  IF_WEBSOCKET = 1,
16  IF_UDP = 2
17 } interface_t;
18 
19 class SinricProMessage {
20 public:
21  SinricProMessage(interface_t interface, const char* message);
22  ~SinricProMessage();
23  const char* getMessage() const;
24  interface_t getInterface() const;
25 private:
26  interface_t _interface;
27  char* _message;
28 };
29 
30 SinricProMessage::SinricProMessage(interface_t interface, const char* message) :
31  _interface(interface) {
32  _message = strdup(message);
33 };
34 
35 SinricProMessage::~SinricProMessage() {
36  if (_message) free(_message);
37 };
38 
39 const char* SinricProMessage::getMessage() const {
40  return _message;
41 };
42 
43 interface_t SinricProMessage::getInterface() const {
44  return _interface;
45 };
46 
47 
48 typedef std::queue<SinricProMessage*> SinricProQueue_t;
49 
50 #endif