22#include "cc_tools_qt/ToolsMsgMgr.h"
24#include <QtCore/QObject>
31class ToolsMsgMgrImpl :
public QObject
35 using MsgType = ToolsMsgMgr::MsgType;
38 ~ToolsMsgMgrImpl() noexcept;
46 void setRecvEnabled(
bool enabled);
49 void deleteMsgs(const ToolsMessagesList& msgs);
55 void sendMsgs(ToolsMessagesList&& msgs);
57 const ToolsMessagesList& getAllMsgs()
const
62 void addMsgs(
const ToolsMessagesList& msgs,
bool reportAdded);
69 using MsgAddedCallbackFunc = ToolsMsgMgr::MsgAddedCallbackFunc;
70 using ErrorReportCallbackFunc = ToolsMsgMgr::ErrorReportCallbackFunc;
71 using SocketConnectionStatusReportCallbackFunc = ToolsMsgMgr::SocketConnectionStatusReportCallbackFunc;
73 template <
typename TFunc>
74 void setMsgAddedCallbackFunc(TFunc&& func)
76 m_msgAddedCallback = std::forward<TFunc>(func);
79 template <
typename TFunc>
80 void setErrorReportCallbackFunc(TFunc&& func)
82 m_errorReportCallback = std::forward<TFunc>(func);
85 template <
typename TFunc>
86 void setSocketConnectionStatusReportCallbackFunc(TFunc&& func)
88 m_socketConnectionStatusReportCallback = std::forward<TFunc>(func);
92 void socketErrorReport(
const QString& msg);
93 void socketConnectionReport(
bool connected);
95 void filterErrorReport(
const QString& msg);
97 void protocolErrorReport(
const QString& msg);
101 using MsgNumberType =
unsigned long long;
102 using FiltersList = std::vector<ToolsFilterPtr>;
104 void updateInternalId(ToolsMessage& msg);
106 void reportError(
const QString& error);
107 void reportSocketConnectionStatus(
bool connected);
109 ToolsMessagesList m_allMsgs;
110 bool m_recvEnabled =
false;
114 FiltersList m_filters;
115 MsgNumberType m_nextMsgNum = 1;
116 bool m_running =
false;
118 MsgAddedCallbackFunc m_msgAddedCallback;
119 ErrorReportCallbackFunc m_errorReportCallback;
120 SocketConnectionStatusReportCallbackFunc m_socketConnectionStatusReportCallback;