a cleanup commit: moved body of some member functions from tvCell.h to tvCell.C
[dyninst.git] / visiClients / tableVisi / src / tvCell.h
1 // tvCell.h
2 // Ariel Tamches
3
4 /*
5  * $Log: tvCell.h,v $
6  * Revision 1.3  1995/12/29 08:17:58  tamches
7  * a cleanup commit: moved body of some member functions from tvCell.h to tvCell.C
8  *
9  * Revision 1.2  1995/12/22 22:38:30  tamches
10  * operator<, operator>, operator== are new; chose a rule that an invalid
11  * cell is less than any valid cell, and all invalid cells are equal.
12  *
13  * Revision 1.1  1995/11/04 00:47:21  tamches
14  * First version of new table visi
15  *
16  */
17
18 #ifndef _TV_CELL_H_
19 #define _TV_CELL_H_
20
21 #include <assert.h>
22
23 class tvCell {
24  private:
25    double data;
26    bool validData;
27
28  public:
29    tvCell() {invalidate();}
30    tvCell(double iData) {setValidData(iData);}
31    tvCell(const tvCell &src) {
32       if (validData = src.validData) // yes, single = on purpose
33          data = src.data;
34    }
35   ~tvCell() {}
36
37    bool operator<(const tvCell &src) const;
38    bool operator==(const tvCell &src) const;
39    bool operator>(const tvCell &src) const;
40
41    tvCell &operator=(const tvCell &src);
42
43    bool isValid() const {return validData;}
44    double getData() const {assert(validData); return data;}
45
46    void invalidate() {validData = false;}
47    void setValidData(double newData) {
48       data = newData;
49       validData = true;
50    }
51 };
52
53 #endif