source: trunk/src/STSubTable.h @ 857

Last change on this file since 857 was 857, checked in by mar637, 18 years ago

added name()
reworked copy constructor for (Table tab) to tale name of the derived class
fixed bug in constructor, where Table::New was used instead of Table::Scratch

File size: 1.3 KB
Line 
1//
2// C++ Interface: STSubTable
3//
4// Description:
5//
6//
7// Author: Malte Marquarding <asap@atnf.csiro.au>, (C) 2006
8//
9// Copyright: See COPYING file that comes with this distribution
10//
11//
12#ifndef ASAPSTSUBTABLE_H
13#define ASAPSTSUBTABLE_H
14
15#include <tables/Tables/Table.h>
16#include <tables/Tables/ScalarColumn.h>
17
18#include "SDLog.h"
19
20namespace asap {
21
22class Scantable;
23/**
24Abstract base class for all subtables in the Scantable class.
25
26@author Malte Marquarding
27@date $Date:$
28@version $Revision:$
29*/
30class STSubTable : public SDLog {
31public:
32  STSubTable() {;}
33  STSubTable( casa::Table tab, const casa::String& name);
34  STSubTable( const Scantable& parent, const casa::String& name );
35
36  virtual ~STSubTable();
37
38  STSubTable& operator=(const STSubTable& other);
39
40
41
42  /**
43   * Add extra columns. To be implemented in derived class
44   */
45  virtual void setup() = 0;
46  // -> virtual bool conformant(const STSubTable& other) = 0;
47
48  virtual const casa::String& name() const = 0;
49
50  /**
51   * Recalculate IDs to be 0-based and incremented by 1 i.e.
52   * rowno == ID
53   * @return the 'old' IDs
54   */
55  casa::Vector<casa::uInt> repopulate();
56
57  const casa::Table& table() const { return table_; }
58  casa::Table table() { return table_; }
59
60protected:
61  casa::Table table_;
62  casa::ScalarColumn<casa::uInt> idCol_;
63
64private:
65
66};
67
68}
69
70#endif
Note: See TracBrowser for help on using the repository browser.