From 30474a6a89761df84e97d7fde327153f09801661 Mon Sep 17 00:00:00 2001 From: Steve Malton Date: Thu, 4 Apr 2024 12:40:45 +0100 Subject: [PATCH] [DOR-577] Tidier function signature --- dorado/read_pipeline/ClientInfo.h | 3 +-- dorado/read_pipeline/DefaultClientInfo.h | 4 ++-- dorado/read_pipeline/PolyACalculatorNode.cpp | 2 +- tests/AlignerTest.cpp | 7 ++----- 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/dorado/read_pipeline/ClientInfo.h b/dorado/read_pipeline/ClientInfo.h index 37658c0de..a5374bb20 100644 --- a/dorado/read_pipeline/ClientInfo.h +++ b/dorado/read_pipeline/ClientInfo.h @@ -25,8 +25,7 @@ class ClientInfo { virtual ~ClientInfo() = default; virtual const AlignmentInfo& alignment_info() const = 0; - virtual const std::unique_ptr& poly_a_calculator() - const = 0; + virtual const poly_tail::PolyTailCalculator* poly_a_calculator() const = 0; virtual int32_t client_id() const = 0; virtual bool is_disconnected() const = 0; diff --git a/dorado/read_pipeline/DefaultClientInfo.h b/dorado/read_pipeline/DefaultClientInfo.h index bfb906f15..32f4ecd66 100644 --- a/dorado/read_pipeline/DefaultClientInfo.h +++ b/dorado/read_pipeline/DefaultClientInfo.h @@ -21,8 +21,8 @@ class DefaultClientInfo final : public ClientInfo { ~DefaultClientInfo() = default; const AlignmentInfo& alignment_info() const override { return empty_alignment_info; } - const std::unique_ptr& poly_a_calculator() const override { - return m_poly_a_calculator; + const poly_tail::PolyTailCalculator* poly_a_calculator() const override { + return m_poly_a_calculator.get(); }; int32_t client_id() const override { return -1; } diff --git a/dorado/read_pipeline/PolyACalculatorNode.cpp b/dorado/read_pipeline/PolyACalculatorNode.cpp index 28f318d46..b708d5a7d 100644 --- a/dorado/read_pipeline/PolyACalculatorNode.cpp +++ b/dorado/read_pipeline/PolyACalculatorNode.cpp @@ -25,7 +25,7 @@ void PolyACalculatorNode::input_thread_fn() { // If this message isn't a read, we'll get a bad_variant_access exception. auto read = std::get(std::move(message)); - const auto& calculator = read->read_common.client_info->poly_a_calculator(); + auto calculator = read->read_common.client_info->poly_a_calculator(); if (!calculator) { send_message_to_sink(std::move(read)); num_not_called++; diff --git a/tests/AlignerTest.cpp b/tests/AlignerTest.cpp index a466e0bb2..a5e28c5eb 100644 --- a/tests/AlignerTest.cpp +++ b/tests/AlignerTest.cpp @@ -1,7 +1,6 @@ #include "MessageSinkUtils.h" #include "TestUtils.h" #include "alignment/Minimap2Aligner.h" -#include "poly_tail/poly_tail_calculator.h" #include "read_pipeline/AlignerNode.h" #include "read_pipeline/ClientInfo.h" #include "read_pipeline/HtsReader.h" @@ -29,16 +28,14 @@ namespace { class TestClientInfo : public dorado::ClientInfo { const dorado::AlignmentInfo m_align_info; - const std::unique_ptr m_calculator; public: TestClientInfo(dorado::AlignmentInfo align_info) : m_align_info(std::move(align_info)) {} int32_t client_id() const override { return 1; } - const std::unique_ptr& poly_a_calculator() - const override { - return m_calculator; + const dorado::poly_tail::PolyTailCalculator* poly_a_calculator() const override { + return nullptr; }; const dorado::AlignmentInfo& alignment_info() const override { return m_align_info; }