41 lines
1016 B
C++
41 lines
1016 B
C++
/**
|
|
* @文件路径: \datacenter\datacenter\inc\queue.h
|
|
* @作者名称: zjp
|
|
* @文件版本: V1.0.0
|
|
* @创建日期: 2025-02-20 16:03:06
|
|
* @简要说明:
|
|
* @编辑时间: 2025-02-21 14:27:34
|
|
* @Copyright: 2025 Shenzhen ShenBao Electrical instruments CO.,LTD. All Rights Reserved.
|
|
*/
|
|
#ifndef _DCAPP_DATACENTER_QUENE_H_
|
|
#define _DCAPP_DATACENTER_QUENE_H_
|
|
#include <iostream>
|
|
#include <queue>
|
|
#include <thread>
|
|
#include <mutex>
|
|
#include <condition_variable>
|
|
#include <chrono>
|
|
#include <string>
|
|
#include "msg.h"
|
|
|
|
// 消息队列类
|
|
class MessageQueue
|
|
{
|
|
private:
|
|
std::queue<msg_mqtt_t> _queue; // 存储消息的队列
|
|
std::mutex mtx; // 保护队列的互斥量
|
|
std::condition_variable cv; // 用于线程同步的条件变量
|
|
|
|
public:
|
|
MessageQueue();
|
|
~MessageQueue();
|
|
// 向队列中添加消息
|
|
void push(msg_mqtt_t message);
|
|
|
|
// 从队列中获取消息
|
|
msg_mqtt_t pop();
|
|
// 从队列中获取消息无阻塞
|
|
msg_mqtt_t pop_nonblock();
|
|
};
|
|
#endif
|