21#include "cc_tools_qt/ToolsMsgMgr.h"
23#include <QtCore/QObject>
30class ToolsMsgMgrImpl :
public QObject
34 using MsgType = ToolsMsgMgr::MsgType;
37 ~ToolsMsgMgrImpl() noexcept;
45 void setRecvEnabled(
bool enabled);
48 void deleteMsgs(const ToolsMessagesList& msgs);
54 void sendMsgs(ToolsMessagesList&& msgs);
56 const ToolsMessagesList& getAllMsgs()
const
61 void addMsgs(
const ToolsMessagesList& msgs,
bool reportAdded);
67 using MsgAddedCallbackFunc = ToolsMsgMgr::MsgAddedCallbackFunc;
68 using ErrorReportCallbackFunc = ToolsMsgMgr::ErrorReportCallbackFunc;
69 using SocketConnectionStatusReportCallbackFunc = ToolsMsgMgr::SocketConnectionStatusReportCallbackFunc;
71 template <
typename TFunc>
72 void setMsgAddedCallbackFunc(TFunc&& func)
74 m_msgAddedCallback = std::forward<TFunc>(func);
77 template <
typename TFunc>
78 void setErrorReportCallbackFunc(TFunc&& func)
80 m_errorReportCallback = std::forward<TFunc>(func);
83 template <
typename TFunc>
84 void setSocketConnectionStatusReportCallbackFunc(TFunc&& func)
86 m_socketConnectionStatusReportCallback = std::forward<TFunc>(func);
90 void socketErrorReport(
const QString& msg);
91 void socketConnectionReport(
bool connected);
93 void filterErrorReport(
const QString& msg);
95 void protocolErrorReport(
const QString& msg);
99 using MsgNumberType =
unsigned long long;
100 using FiltersList = std::vector<ToolsFilterPtr>;
102 void updateInternalId(ToolsMessage& msg);
104 void reportError(
const QString& error);
105 void reportSocketConnectionStatus(
bool connected);
107 ToolsMessagesList m_allMsgs;
108 bool m_recvEnabled =
false;
112 FiltersList m_filters;
113 MsgNumberType m_nextMsgNum = 1;
114 bool m_running =
false;
116 MsgAddedCallbackFunc m_msgAddedCallback;
117 ErrorReportCallbackFunc m_errorReportCallback;
118 SocketConnectionStatusReportCallbackFunc m_socketConnectionStatusReportCallback;