2025-03-12 14:17:53 +08:00

68 lines
2.4 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
@file TimetableMsgBusMng.h
@brief 消息管理类
@author 曹顶法
*/
#pragma once
#include "pub_sysinfo_api/SysInfoApi.h"
#include "net_msg_bus_api/CMbCommunicator.h"
#include "rdb_api/CRdbAccessEx.h"
#include "TimetableRtdbTableOperate.h"
namespace kbd_app
{
class CTimetableMsgBusMng
{
public:
CTimetableMsgBusMng(const iot_public::SRunAppInfo &stRunAppInfo,
const iot_public::CSysInfoInterfacePtr &ptrSysInfo);
virtual ~CTimetableMsgBusMng();
/*
@brief 初始化
@return 成功返回kbdSuccess,失败返回错误码
*/
int initialize();
/*
@brief 订阅消息通道
@return 成功返回kbdSuccess,失败返回错误码
*/
int subscribeMessage();
/*
@brief 取消消息订阅
@return 成功返回kbdSuccess,失败返回错误码
*/
int unsubscribeMessage();
/*
@brief 接收消息
@param iot_net::CMbMessage & objMsg 返回的消息
@param int nTimeoutMsec 超时时间
@return 成功返回true失败返回false
*/
bool recvMsg(iot_net::CMbMessage &objMsg, int nTimeoutMsec = 0);
/*
@brief 发送消息
@param const std::string & strMsg 消息内容
@param const int nChannel 通道
@param const int nMsgType 消息类型
@param const int nDstDomain 目的域strNodeName非空时使用sendtohost
@param const std::string & strNodeName 目标节点非空时使用sendtohost否在使用sendtodomain
@return 成功返回true失败返回false
*/
bool sendMsgToMsgBus(const std::string &strMsg,
const int nChannel,
const int nMsgType,
const int nDstDomain,
const std::string &strNodeName);
/* @brief 获取通信器名称 */
std::string getCommunicatorName();
private:
iot_net::CMbCommunicator m_objCommunicator; //< 消息总线通信器
iot_public::SRunAppInfo m_stRunAppInfo; //< 本应用相关运行参数
iot_public::CSysInfoInterfacePtr m_ptrSysInfo; //< 系统信息访问库智能指针
};
typedef boost::shared_ptr<CTimetableMsgBusMng> CTimetableMsgBusMngPtr;
}