193 template<
class T,
class... Args>
194 bool emit(Args &&...args);
207 bool post(
const std::shared_ptr<Message> &message)
const;
245 void append(
const std::shared_ptr<Message> &message)
override;
254 void messageNotify();
257 std::atomic_bool m_nodeWaitingFlag{
false };
290 m_nodeWaitingFlag =
false;
291 m_nodeWaitingFlag.wait(
false);
313template<
class T,
class... Args>
316 return m_bus.
emit<T>(std::forward<Args>(args)...);
320inline bool Node::post(
const std::shared_ptr<Message> &message)
const
322 return m_bus.
post(message);
328 std::scoped_lock lock(m_busMessages.mtx);
330 return m_busMessages.messageQueue.size();
336 std::scoped_lock lock(m_busMessages.mtx);
338 if (m_busMessages.messageQueue.empty())
341 auto message = m_busMessages.messageQueue.front();
342 m_busMessages.messageQueue.pop();
350 std::scoped_lock lock(m_busMessages.mtx);
352 m_busMessages.messageQueue.push(message);
360inline void Node::messageNotify()
362 if (!m_nodeWaitingFlag.load())
364 m_nodeWaitingFlag =
true;
365 m_nodeWaitingFlag.notify_one();