X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=src%2Fapi%2FSamReadGroupDictionary.h;h=7a651e1501818c7d0c93ff30091ad68391f9fb82;hb=9f1ce8c47aeadb6dc1320b52ee671c3341b97935;hp=8a2bb5b1adf8cc0a50683f135588a1fa87399fb2;hpb=7e2b34b53dd34422b3f2308bda4bbe7ab3ee129d;p=bamtools.git diff --git a/src/api/SamReadGroupDictionary.h b/src/api/SamReadGroupDictionary.h index 8a2bb5b..7a651e1 100644 --- a/src/api/SamReadGroupDictionary.h +++ b/src/api/SamReadGroupDictionary.h @@ -1,18 +1,17 @@ // *************************************************************************** // SamReadGroupDictionary.h (c) 2010 Derek Barnett // Marth Lab, Department of Biology, Boston College -// All rights reserved. // --------------------------------------------------------------------------- -// Last modified: 23 December 2010 (DB) +// Last modified: 10 October 2011 (DB) // --------------------------------------------------------------------------- -// Provides container operations for collection of read group entries -// ************************************************************************* +// Provides methods for operating on a collection of SamReadGroup entries. +// *************************************************************************** #ifndef SAM_READGROUP_DICTIONARY_H #define SAM_READGROUP_DICTIONARY_H -#include -#include +#include "api/api_global.h" +#include "api/SamReadGroup.h" #include #include @@ -22,8 +21,6 @@ typedef std::vector SamReadGroupContainer; typedef SamReadGroupContainer::iterator SamReadGroupIterator; typedef SamReadGroupContainer::const_iterator SamReadGroupConstIterator; -// stores read groups -// can access read groups using SamReadGroup object or (std::string) read group ID tag class API_EXPORT SamReadGroupDictionary { // ctor & dtor @@ -34,15 +31,16 @@ class API_EXPORT SamReadGroupDictionary { // query/modify read group data public: - // add a read group + // adds a read group void Add(const SamReadGroup& readGroup); - void Add(const std::string& readGroupIds); + void Add(const std::string& readGroupId); - // add multiple read groups + // adds multiple read groups + void Add(const SamReadGroupDictionary& readGroups); void Add(const std::vector& readGroups); void Add(const std::vector& readGroupIds); - // clear all read groups records + // clears all read group entries void Clear(void); // returns true if dictionary contains this read group @@ -52,38 +50,31 @@ class API_EXPORT SamReadGroupDictionary { // returns true if dictionary is empty bool IsEmpty(void) const; - // remove a single read group (does nothing if read group not found) + // removes read group, if found void Remove(const SamReadGroup& readGroup); void Remove(const std::string& readGroupId); - // remove multiple read groups + // removes multiple read groups void Remove(const std::vector& readGroups); void Remove(const std::vector& readGroupIds); - // returns size of dictionary (number of current elements) + // returns number of read groups in dictionary int Size(void) const; - // retrieves the SamReadGroup object associated with this ID - // if readGroupId is unknown, a new SamReadGroup is created with this ID (and no other data) - // and a reference to this new read group entry is returned (like std::map) - // - // * To avoid these partial entries being created, it is recommended to check - // for existence first using Contains() + // retrieves a modifiable reference to the SamReadGroup object associated with this ID SamReadGroup& operator[](const std::string& readGroupId); - // retrieve read group iterators - // these are typedefs for STL iterators and thus are compatible with STL containers/algorithms + // retrieve STL-compatible iterators public: - SamReadGroupIterator Begin(void); - SamReadGroupConstIterator Begin(void) const; - SamReadGroupConstIterator ConstBegin(void) const; - SamReadGroupIterator End(void); - SamReadGroupConstIterator End(void) const; - SamReadGroupConstIterator ConstEnd(void) const; + SamReadGroupIterator Begin(void); // returns iterator to begin() + SamReadGroupConstIterator Begin(void) const; // returns const_iterator to begin() + SamReadGroupConstIterator ConstBegin(void) const; // returns const_iterator to begin() + SamReadGroupIterator End(void); // returns iterator to end() + SamReadGroupConstIterator End(void) const; // returns const_iterator to end() + SamReadGroupConstIterator ConstEnd(void) const; // returns const_iterator to end() // internal methods private: - int IndexOf(const SamReadGroup& readGroup) const; int IndexOf(const std::string& readGroupId) const; // data members @@ -93,4 +84,4 @@ class API_EXPORT SamReadGroupDictionary { } // namespace BamTools -#endif // SAM_READGROUP_DICTIONARY +#endif // SAM_READGROUP_DICTIONARY_H