00001
00002
00003
00005 #ifndef ANNOTATIONMATRIX_H
00006 #define ANNOTATIONMATRIX_H
00007
00008 #include <string>
00009 #include <list>
00010 #include "AnnotationScore.h"
00011
00012
00013 class SeqLoc;
00014 class AnnotationItem;
00015 class DnaStr;
00016 class UnitScore;
00017 class Compare;
00018 class CustomScore;
00019
00020 using std::list;
00021
00027 class AnnotationMatrix {
00028 public:
00029 typedef list<AnnotationItem*>::iterator iterator;
00030 typedef list<AnnotationItem*>::const_iterator const_iterator;
00031
00032 AnnotationMatrix();
00033 ~AnnotationMatrix();
00034
00035 void del();
00039
00046 void insert(AnnotationItem*);
00047
00048 iterator begin();
00049 iterator end();
00050
00051 unsigned size() const { return _data.size(); }
00052
00053 const_iterator begin() const;
00054 const_iterator end() const;
00055
00056 bool empty() const { return _data.empty(); }
00057
00058 protected:
00059 list<AnnotationItem*> _data;
00060
00061 private:
00062 const Compare* _cmp;
00067
00068 };
00069
00070 #endif // ANNOTATIONMATRIX_H