Line data Source code
1 : /*! 2 : * \file esys/repo/tui/queueobserver.cpp 3 : * \brief 4 : * 5 : * \cond 6 : * __legal_b__ 7 : * 8 : * Copyright (c) 2026 Michel Gillet 9 : * Distributed under the MIT License. 10 : * (See accompanying file LICENSE.txt or 11 : * copy at https://opensource.org/licenses/MIT) 12 : * 13 : * __legal_e__ 14 : * \endcond 15 : * 16 : */ 17 : 18 : #include "esys/repo/esysrepo_prec.h" 19 : #include "esys/repo/tui/queueobserver.h" 20 : 21 : namespace esys::repo::tui 22 : { 23 : 24 1 : QueueObserver::QueueObserver(EventQueue *queue) 25 1 : : m_queue(queue) 26 : { 27 1 : } 28 : 29 1 : QueueObserver::~QueueObserver() = default; 30 : 31 2 : void QueueObserver::on_sync_event(const progress::SyncEvent &event) 32 : { 33 2 : if (m_queue != nullptr) m_queue->push(event); 34 2 : if (m_wakeup) m_wakeup(event); 35 2 : } 36 : 37 0 : EventQueue *QueueObserver::get_queue() const 38 : { 39 0 : return m_queue; 40 : } 41 : 42 1 : void QueueObserver::set_wakeup(std::function<void(const progress::SyncEvent &)> wakeup) 43 : { 44 1 : m_wakeup = std::move(wakeup); 45 1 : } 46 : 47 : } // namespace esys::repo::tui