1 #ifndef RAREFACTIONCURVEDATA_H
2 #define RAREFACTIONCURVEDATA_H
5 #include "sabundvector.hpp"
7 #include "observable.h"
9 /***********************************************************************/
11 class RarefactionCurveData : public Observable {
14 RarefactionCurveData() : rank(0) {};
16 void registerDisplay(Display* o) { displays.insert(o); };
17 void removeDisplay(Display* o) { displays.erase(o); delete o; };
18 SAbundVector* getRankData() { return rank; };
19 void rankDataChanged() { notifyDisplays(); };
20 void updateRankData(SAbundVector* rv) { rank = rv; rankDataChanged(); };
22 void notifyDisplays(){
23 for(set<Display*>::iterator pos=displays.begin();pos!=displays.end();pos++){
29 set<Display*> displays;
34 /***********************************************************************/
36 class SharedRarefactionCurveData : public Observable {
39 SharedRarefactionCurveData() {}; //: shared1(0), shared2(0)
41 void registerDisplay(Display* o) { displays.insert(o); };
42 void removeDisplay(Display* o) { displays.erase(o); delete o; };
43 void SharedDataChanged() { notifyDisplays(); };
44 void updateSharedData(vector<SharedRAbundVector*> r, int numSeqs, int numGroupComb) { shared = r; NumSeqs = numSeqs; NumGroupComb = numGroupComb; SharedDataChanged(); };
46 void notifyDisplays(){
47 for(set<Display*>::iterator pos=displays.begin();pos!=displays.end();pos++){
48 (*pos)->update(shared, NumSeqs, NumGroupComb);
53 set<Display*> displays;
54 vector<SharedRAbundVector*> shared;
55 int NumSeqs, NumGroupComb;
59 /***********************************************************************/