20#include "cc_tools_qt/ToolsMsgMgr.h"
22#include <QtCore/QObject>
29class ToolsMsgMgrImpl :
public QObject
33 using MsgType = ToolsMsgMgr::MsgType;
36 ~ToolsMsgMgrImpl() noexcept;
44 void setRecvEnabled(
bool enabled);
47 void deleteMsgs(const ToolsMessagesList& msgs);
53 void sendMsgs(ToolsMessagesList&& msgs);
55 const ToolsMessagesList& getAllMsgs()
const
60 void addMsgs(
const ToolsMessagesList& msgs,
bool reportAdded);
66 using MsgAddedCallbackFunc = ToolsMsgMgr::MsgAddedCallbackFunc;
67 using ErrorReportCallbackFunc = ToolsMsgMgr::ErrorReportCallbackFunc;
68 using SocketConnectionStatusReportCallbackFunc = ToolsMsgMgr::SocketConnectionStatusReportCallbackFunc;
70 template <
typename TFunc>
71 void setMsgAddedCallbackFunc(TFunc&& func)
73 m_msgAddedCallback = std::forward<TFunc>(func);
76 template <
typename TFunc>
77 void setErrorReportCallbackFunc(TFunc&& func)
79 m_errorReportCallback = std::forward<TFunc>(func);
82 template <
typename TFunc>
83 void setSocketConnectionStatusReportCallbackFunc(TFunc&& func)
85 m_socketConnectionStatusReportCallback = std::forward<TFunc>(func);
89 void socketErrorReport(
const QString& msg);
90 void socketConnectionReport(
bool connected);
92 void filterErrorReport(
const QString& msg);
94 void protocolErrorReport(
const QString& msg);
98 using MsgNumberType =
unsigned long long;
99 using FiltersList = std::vector<ToolsFilterPtr>;
101 void updateInternalId(ToolsMessage& msg);
103 void reportError(
const QString& error);
104 void reportSocketConnectionStatus(
bool connected);
106 ToolsMessagesList m_allMsgs;
107 bool m_recvEnabled =
false;
111 FiltersList m_filters;
112 MsgNumberType m_nextMsgNum = 1;
113 bool m_running =
false;
115 MsgAddedCallbackFunc m_msgAddedCallback;
116 ErrorReportCallbackFunc m_errorReportCallback;
117 SocketConnectionStatusReportCallbackFunc m_socketConnectionStatusReportCallback;