ifw-daq 3.1.0
IFW Data Acquisition modules
Loading...
Searching...
No Matches
testAsyncOpBase.cpp
Go to the documentation of this file.
1/**
2 * @file
3 * @ingroup daq_ocm_libdaq_test
4 * @copyright 2022 ESO - European Southern Observatory
5 *
6 * @brief Definition of TestAsyncOpBase
7 */
8#include "testAsyncOpBase.hpp"
9
10using namespace daq;
11using namespace ::testing;
12
14 : m_io_ctx()
15 , m_executor(m_io_ctx)
16 , m_logger(log4cplus::Logger::getInstance("test"))
17 , m_id("id")
18 , m_status(std::make_shared<ObservableStatus>(m_id, m_id))
19 , m_event_log(std::make_shared<ObservableEventLog>())
20 , m_pending_replies(PendingReplies::Create()) {
21}
22
24 m_prim_rr_client = std::make_shared<RecCmdsAsyncMock>();
25 m_prim_rr_client2 = std::make_shared<NiceMock<RecCmdsAsyncMock>>();
26 m_meta_rr_client = std::make_shared<MetaDaqAsyncMock>();
27 m_meta_rr_client2 = std::make_shared<NiceMock<MetaDaqAsyncMock>>();
28
29 // Connect listener
30 m_status->ConnectObserver(std::reference_wrapper(m_observer));
31
32 PrimSource p1("prim-source-1", m_prim_rr_client);
33 PrimSource p2("prim-source-2", m_prim_rr_client2);
34
35 m_prim_sources = MakeSources<PrimSource>({p1, p2});
36
37 MetaSource s1("meta-source-1", m_meta_rr_client);
38 MetaSource s2("meta-source-2", m_meta_rr_client2);
39
40 m_meta_sources = MakeSources<MetaSource>({s1, s2});
41}
42
44 m_meta_rr_client.reset();
45 m_meta_rr_client2.reset();
46 m_prim_rr_client.reset();
47 m_prim_rr_client2.reset();
48}
49
51 return op::AsyncOpParams(
52 *m_status.get(),
53 *m_event_log.get(),
57 m_id,
58 *m_pending_replies.get(),
61 ptr != nullptr ? *ptr : static_cast<daq::fits::KeywordFormatter const&>(m_std_formatter));
62}
Keeps relevant state to be able to communicate with a primary data source.
Definition: source.hpp:142
Stores data acquisition status and allows subscription to status changes.
Definition: eventLog.hpp:107
Stores data acquisition status and allows subscription to status changes.
Definition: status.hpp:224
Simple class that allows you to keep track of how many replies are pending.
Keeps relevant state to be able to communicate with a primary data source.
Definition: source.hpp:98
Formats keyword against e.g.
Definition: keyword.hpp:551
daq::op::AsyncOpParams MakeParams(daq::fits::KeywordFormatter const *fmt=nullptr)
Make async params using m_std_formatter if no fmt is not provided.
log4cplus::Logger m_logger
daq::fits::StandardKeywordFormatter m_std_formatter
daq::op::AlertState m_alerts
rad::IoExecutor m_executor
std::shared_ptr< daq::RecCmdsAsyncMock > m_prim_rr_client
StatusObserverMock m_observer
std::shared_ptr< daq::ObservableEventLog > m_event_log
std::shared_ptr< daq::ObservableStatus > m_status
std::shared_ptr< daq::PendingReplies > m_pending_replies
std::vector< daq::Source< daq::MetaSource > > m_meta_sources
std::shared_ptr< daq::RecCmdsAsyncMock > m_prim_rr_client2
void SetUp() override
std::vector< daq::Source< daq::PrimSource > > m_prim_sources
std::shared_ptr< daq::MetaDaqAsyncMock > m_meta_rr_client2
void TearDown() override
std::shared_ptr< daq::MetaDaqAsyncMock > m_meta_rr_client
Parameters required for each async operation.
Contains declaration for async operations shared base class.