Gamgee
You miserable little maggot. I'll stove your head in!
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
hts_memory.h
Go to the documentation of this file.
1 #ifndef __gamgee_hts_memory__
2 #define __gamgee_hts_memory__
3 
4 #include "htslib/sam.h"
5 #include "htslib/vcf.h"
6 
7 #include <memory>
8 #include <vector>
9 #include <string>
10 
11 namespace gamgee {
12 namespace utils {
13 
18  void operator()(htsFile* p) const { hts_close(p); }
19 };
20 
27  void operator()(bam1_t* p) const { bam_destroy1(p); }
28 };
29 
34  void operator()(bam_hdr_t* p) const { bam_hdr_destroy(p); }
35 };
36 
41  void operator()(bcf_hdr_t* p) const { bcf_hdr_destroy(p); }
42 };
43 
48  void operator()(bcf1_t* p) const { bcf_destroy1(p); }
49 };
50 
51 std::shared_ptr<bam1_t> make_shared_sam(bam1_t* sam_ptr);
52 std::shared_ptr<bam_hdr_t> make_shared_sam_header(bam_hdr_t* sam_header_ptr);
53 std::shared_ptr<bcf1_t> make_shared_variant(bcf1_t* bcf_ptr);
54 std::shared_ptr<bcf_hdr_t> make_shared_variant_header(bcf_hdr_t* bcf_hdr_ptr);
55 
56 bam1_t* sam_deep_copy(bam1_t* original);
57 bam_hdr_t* sam_header_deep_copy(bam_hdr_t* original);
58 bcf1_t* variant_deep_copy(bcf1_t* original);
59 bcf_hdr_t* variant_header_deep_copy(bcf_hdr_t* original);
60 
61 
62 
63 }
64 }
65 
66 #endif
void operator()(htsFile *p) const
Definition: hts_memory.h:18
a functor object to delete a bam_hdr_t pointer
Definition: hts_memory.h:33
shared_ptr< bcf_hdr_t > make_shared_variant_header(bcf_hdr_t *bcf_hdr_ptr)
wraps a pre-allocated bcf_hdr_t in a shared_ptr with correct deleter
Definition: hts_memory.cpp:38
bam_hdr_t * sam_header_deep_copy(bam_hdr_t *original)
creates a deep copy of an existing bam_hdr_t
Definition: hts_memory.cpp:54
void operator()(bam_hdr_t *p) const
Definition: hts_memory.h:34
a functor object to delete a bam1_t pointer
Definition: hts_memory.h:26
shared_ptr< bcf1_t > make_shared_variant(bcf1_t *bcf_ptr)
wraps a pre-allocated bcf1_t in a shared_ptr with correct deleter
Definition: hts_memory.cpp:30
void operator()(bcf_hdr_t *p) const
Definition: hts_memory.h:41
bcf1_t * variant_deep_copy(bcf1_t *original)
creates a deep copy of an existing bcf1_t
Definition: hts_memory.cpp:62
bcf_hdr_t * variant_header_deep_copy(bcf_hdr_t *original)
creates a deep copy of an existing bcf_hdr_t
Definition: hts_memory.cpp:70
a functor object to delete a bcf_hdr_t pointer
Definition: hts_memory.h:40
shared_ptr< bam_hdr_t > make_shared_sam_header(bam_hdr_t *sam_header_ptr)
wraps a pre-allocated bam_hdr_t in a shared_ptr with correct deleter
Definition: hts_memory.cpp:22
shared_ptr< bam1_t > make_shared_sam(bam1_t *sam_ptr)
wraps a pre-allocated bam1_t in a shared_ptr with correct deleter
Definition: hts_memory.cpp:14
a functor object to delete an htsFile pointer
Definition: hts_memory.h:17
a functor object to delete a bcf1_t pointer
Definition: hts_memory.h:47
void operator()(bcf1_t *p) const
Definition: hts_memory.h:48
void operator()(bam1_t *p) const
Definition: hts_memory.h:27
bam1_t * sam_deep_copy(bam1_t *original)
creates a deep copy of an existing bam1_t
Definition: hts_memory.cpp:46