68 lines
2.4 KiB
C++
68 lines
2.4 KiB
C++
/*
|
||
@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;
|
||
}
|