Gamgee
You miserable little maggot. I'll stove your head in!
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
base_quals.h
Go to the documentation of this file.
1 #ifndef __gamgee__base_quals__
2 #define __gamgee__base_quals__
3 
4 #include "htslib/sam.h"
5 
6 #include <memory>
7 
8 namespace gamgee {
9 
13 class BaseQuals {
14  public:
15  explicit BaseQuals(const std::shared_ptr<bam1_t>& sam_record);
16  BaseQuals(const BaseQuals& other);
17  BaseQuals(BaseQuals&& other) noexcept;
18  BaseQuals& operator=(const BaseQuals& other);
19  BaseQuals& operator=(BaseQuals&& other) noexcept;
20  ~BaseQuals() = default;
21 
22  uint8_t operator[](const uint32_t index) const;
23  uint32_t size() const { return m_num_quals; }
24 
25  private:
26  std::shared_ptr<bam1_t> m_sam_record;
27  uint8_t* m_quals;
28  uint32_t m_num_quals;
29 };
30 
31 }
32 
33 #endif /* __gamgee__base_quals__ */
~BaseQuals()=default
Default destruction is sufficient, since our shared_ptr will handle deallocation. ...
BaseQuals(const std::shared_ptr< bam1_t > &sam_record)
creates a BaseQuals object that points to htslib memory already allocated
Definition: base_quals.cpp:17
BaseQuals & operator=(const BaseQuals &other)
creates a deep copy of a BaseQuals object
Definition: base_quals.cpp:50
uint32_t size() const
number of base qualities in the container
Definition: base_quals.h:23
Utility class to handle the memory management of the sam record object for a read base qualities...
Definition: base_quals.h:13
uint8_t operator[](const uint32_t index) const
use freely as you would an array.
Definition: base_quals.cpp:77