BamTools  2.4.0
SamReadGroupDictionary.h
Go to the documentation of this file.
1 // ***************************************************************************
2 // SamReadGroupDictionary.h (c) 2010 Derek Barnett
3 // Marth Lab, Department of Biology, Boston College
4 // ---------------------------------------------------------------------------
5 // Last modified: 16 October 2011 (DB)
6 // ---------------------------------------------------------------------------
7 // Provides methods for operating on a collection of SamReadGroup entries.
8 // ***************************************************************************
9 
10 #ifndef SAM_READGROUP_DICTIONARY_H
11 #define SAM_READGROUP_DICTIONARY_H
12 
13 #include "api/api_global.h"
14 #include "api/SamReadGroup.h"
15 #include <map>
16 #include <string>
17 #include <vector>
18 
19 namespace BamTools {
20 
21 typedef std::vector<SamReadGroup> SamReadGroupContainer;
22 typedef SamReadGroupContainer::iterator SamReadGroupIterator;
23 typedef SamReadGroupContainer::const_iterator SamReadGroupConstIterator;
24 
26 
27  // ctor & dtor
28  public:
32 
33  // query/modify read group data
34  public:
35  // adds a read group
36  void Add(const SamReadGroup& readGroup);
37  void Add(const std::string& readGroupId);
38 
39  // adds multiple read groups
40  void Add(const SamReadGroupDictionary& readGroups);
41  void Add(const std::vector<SamReadGroup>& readGroups);
42  void Add(const std::vector<std::string>& readGroupIds);
43 
44  // clears all read group entries
45  void Clear(void);
46 
47  // returns true if dictionary contains this read group
48  bool Contains(const SamReadGroup& readGroup) const;
49  bool Contains(const std::string& readGroupId) const;
50 
51  // returns true if dictionary is empty
52  bool IsEmpty(void) const;
53 
54  // removes read group, if found
55  void Remove(const SamReadGroup& readGroup);
56  void Remove(const std::string& readGroupId);
57 
58  // removes multiple read groups
59  void Remove(const std::vector<SamReadGroup>& readGroups);
60  void Remove(const std::vector<std::string>& readGroupIds);
61 
62  // returns number of read groups in dictionary
63  int Size(void) const;
64 
65  // retrieves a modifiable reference to the SamReadGroup object associated with this ID
66  SamReadGroup& operator[](const std::string& readGroupId);
67 
68  // retrieve STL-compatible iterators
69  public:
70  SamReadGroupIterator Begin(void); // returns iterator to begin()
71  SamReadGroupConstIterator Begin(void) const; // returns const_iterator to begin()
72  SamReadGroupConstIterator ConstBegin(void) const; // returns const_iterator to begin()
73  SamReadGroupIterator End(void); // returns iterator to end()
74  SamReadGroupConstIterator End(void) const; // returns const_iterator to end()
75  SamReadGroupConstIterator ConstEnd(void) const; // returns const_iterator to end()
76 
77  // data members
78  private:
79  SamReadGroupContainer m_data;
80  std::map<std::string, size_t> m_lookupData;
81 };
82 
83 } // namespace BamTools
84 
85 #endif // SAM_READGROUP_DICTIONARY_H
SamReadGroupContainer::const_iterator SamReadGroupConstIterator
Definition: SamReadGroupDictionary.h:23
Represents a SAM read group entry.
Definition: SamReadGroup.h:20
#define API_EXPORT
Definition: api_global.h:18
Container of SamReadGroup entries.
Definition: SamReadGroupDictionary.h:25
SamReadGroupContainer::iterator SamReadGroupIterator
Definition: SamReadGroupDictionary.h:22
std::vector< SamReadGroup > SamReadGroupContainer
Definition: SamReadGroupDictionary.h:21
Contains all BamTools classes & methods.
Definition: Sort.h:24