OpenMS
Loading...
Searching...
No Matches
RibonucleotideDataProvider.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: Timo Sachsenberg $
6// $Authors: Timo Sachsenberg $
7// --------------------------------------------------------------------------
8
9#pragma once
10
13#include <OpenMS/OpenMSConfig.h>
14
15#include <memory>
16#include <vector>
17
18namespace OpenMS
19{
29 struct OPENMS_DLLAPI RibonucleotideEntry
30 {
31 std::unique_ptr<Ribonucleotide> ribo;
34
41
43 bool isAmbiguous() const { return !alternative_code_1.empty(); }
44 };
45
56 class OPENMS_DLLAPI RibonucleotideDataProvider
57 {
58 public:
59 virtual ~RibonucleotideDataProvider() = default;
60
66 virtual std::vector<RibonucleotideEntry> loadRibonucleotides() = 0;
67 };
68
77 {
78 public:
79 explicit InMemoryRibonucleotideDataProvider(std::vector<RibonucleotideEntry> entries)
80 : entries_(std::move(entries))
81 {
82 }
83
88
89 std::vector<RibonucleotideEntry> loadRibonucleotides() override
90 {
91 return std::move(entries_);
92 }
93
94 private:
95 std::vector<RibonucleotideEntry> entries_;
96 };
97
98} // namespace OpenMS
Data provider that serves pre-built ribonucleotides from memory.
Definition RibonucleotideDataProvider.h:77
std::vector< RibonucleotideEntry > loadRibonucleotides() override
Load ribonucleotides from whatever source this provider wraps.
Definition RibonucleotideDataProvider.h:89
InMemoryRibonucleotideDataProvider & operator=(const InMemoryRibonucleotideDataProvider &)=delete
InMemoryRibonucleotideDataProvider(InMemoryRibonucleotideDataProvider &&)=default
InMemoryRibonucleotideDataProvider(std::vector< RibonucleotideEntry > entries)
Definition RibonucleotideDataProvider.h:79
InMemoryRibonucleotideDataProvider & operator=(InMemoryRibonucleotideDataProvider &&)=default
InMemoryRibonucleotideDataProvider(const InMemoryRibonucleotideDataProvider &)=delete
std::vector< RibonucleotideEntry > entries_
Definition RibonucleotideDataProvider.h:95
Interface for providing Ribonucleotide data to RibonucleotideDB.
Definition RibonucleotideDataProvider.h:57
virtual std::vector< RibonucleotideEntry > loadRibonucleotides()=0
Load ribonucleotides from whatever source this provider wraps.
virtual ~RibonucleotideDataProvider()=default
A more convenient string class.
Definition String.h:34
Main OpenMS namespace.
Definition openswathalgo/include/OpenMS/OPENSWATHALGO/DATAACCESS/ISpectrumAccess.h:19
STL namespace.
Holds a Ribonucleotide together with optional ambiguity codes.
Definition RibonucleotideDataProvider.h:30
RibonucleotideEntry & operator=(RibonucleotideEntry &&)=default
std::unique_ptr< Ribonucleotide > ribo
Definition RibonucleotideDataProvider.h:31
bool isAmbiguous() const
Returns true if this entry represents an ambiguous modification.
Definition RibonucleotideDataProvider.h:43
String alternative_code_2
code of second alternative (empty if unambiguous)
Definition RibonucleotideDataProvider.h:33
RibonucleotideEntry(RibonucleotideEntry &&)=default
RibonucleotideEntry(const RibonucleotideEntry &)=delete
String alternative_code_1
code of first alternative (empty if unambiguous)
Definition RibonucleotideDataProvider.h:32
RibonucleotideEntry & operator=(const RibonucleotideEntry &)=delete