OpenMS
Loading...
Searching...
No Matches
DigestionEnzymeDataProvider.h
Go to the documentation of this file.
1// Copyright (c) 2002-present, OpenMS Inc. -- EKU Tuebingen, ETH Zurich, and FU Berlin
2// SPDX-License-Identifier: BSD-3-Clause
3//
4// --------------------------------------------------------------------------
5// $Maintainer: Sachsenberg $
6// $Authors: Sachsenberg $
7// --------------------------------------------------------------------------
8
9#pragma once
10
11#include <memory>
12#include <vector>
13
14namespace OpenMS
15{
28 template <typename EnzymeType>
30 {
31 public:
32 virtual ~DigestionEnzymeDataProvider() = default;
33
36 virtual std::vector<std::unique_ptr<EnzymeType>> loadEnzymes() = 0;
37 };
38
46 template <typename EnzymeType>
48 {
49 public:
52 explicit InMemoryDigestionEnzymeDataProvider(std::vector<std::unique_ptr<EnzymeType>> enzymes)
53 : enzymes_(std::move(enzymes))
54 {
55 }
56
58 std::vector<std::unique_ptr<EnzymeType>> loadEnzymes() override
59 {
60 return std::move(enzymes_);
61 }
62
63 private:
64 std::vector<std::unique_ptr<EnzymeType>> enzymes_;
65 };
66
67} // namespace OpenMS
Abstract interface for providing digestion enzyme data.
Definition DigestionEnzymeDataProvider.h:30
virtual std::vector< std::unique_ptr< EnzymeType > > loadEnzymes()=0
Load enzyme definitions. Ownership is transferred to the caller.
virtual ~DigestionEnzymeDataProvider()=default
In-memory data provider for digestion enzymes (primarily for testing)
Definition DigestionEnzymeDataProvider.h:48
std::vector< std::unique_ptr< EnzymeType > > loadEnzymes() override
Load enzymes. This moves from internal storage; subsequent calls return an empty vector.
Definition DigestionEnzymeDataProvider.h:58
std::vector< std::unique_ptr< EnzymeType > > enzymes_
Definition DigestionEnzymeDataProvider.h:64
InMemoryDigestionEnzymeDataProvider(std::vector< std::unique_ptr< EnzymeType > > enzymes)
Construct from a vector of pre-built enzymes (takes ownership)
Definition DigestionEnzymeDataProvider.h:52
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
STL namespace.