source: trunk/src/SDMemTableWrapper.h @ 18

Last change on this file since 18 was 18, checked in by mmarquar, 20 years ago

Moved SDHeader from SDReader to SDConatiner. Added header to SDMemTable. Added access funtions to nif,nbema,npol,nchan

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.2 KB
Line 
1//#---------------------------------------------------------------------------
2//# SDMemTableWrapper.h: Wrapper classes to use CountedPtr
3//#---------------------------------------------------------------------------
4//# Copyright (C) 2004
5//# Malte Marquarding, ATNF
6//#
7//# This program is free software; you can redistribute it and/or modify it
8//# under the terms of the GNU General Public License as published by the Free
9//# Software Foundation; either version 2 of the License, or (at your option)
10//# any later version.
11//#
12//# This program is distributed in the hope that it will be useful, but
13//# WITHOUT ANY WARRANTY; without even the implied warranty of
14//# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
15//# Public License for more details.
16//#
17//# You should have received a copy of the GNU General Public License along
18//# with this program; if not, write to the Free Software Foundation, Inc.,
19//# 675 Massachusetts Ave, Cambridge, MA 02139, USA.
20//#
21//# Correspondence concerning this software should be addressed as follows:
22//#        Internet email: Malte.Marquarding@csiro.au
23//#        Postal address: Malte Marquarding,
24//#                        Australia Telescope National Facility,
25//#                        P.O. Box 76,
26//#                        Epping, NSW, 2121,
27//#                        AUSTRALIA
28//#
29//# $Id:
30//#---------------------------------------------------------------------------
31#ifndef _SDMEMTABLEWRAPPER_H_
32#define _SDMEMTABLEWRAPPER_H_
33
34#include <vector>
35#include <string>
36
37#include "SDMemTable.h"
38#include "SDReader.h"
39#include "SDMath.h"
40
41namespace atnf_sd {
42
43class SDMemTableWrapper {
44
45public:
46  SDMemTableWrapper(const std::string& name) :
47    table_(new SDMemTable(name)) {;}
48  SDMemTableWrapper() :
49    table_(new SDMemTable()) {;}
50 
51  SDMemTableWrapper(CountedPtr<SDMemTable> cp) : table_(cp) {;}
52  SDMemTableWrapper(SDMemTable* sdmt) : table_(sdmt) {;}
53 
54  SDMemTableWrapper(const SDMemTableWrapper& mt, int scan) :
55    table_(new SDMemTable(mt.getCP()->table(), scan)) {;}
56 
57  SDMemTableWrapper getScan(int scan) {
58    return SDMemTableWrapper(*this, scan);
59  }
60  std::vector<float> getSpectrum(int whichRow) const {
61    return table_->getSpectrum(whichRow);
62  }
63  float getTsys(int whichRow) {return table_->getTsys(whichRow);}
64  double getTime(int whichRow) {return table_->getTime(whichRow);}
65
66  std::vector<bool> getMask(int whichRow) const {
67    return table_->getMask(whichRow);
68  }
69  bool setMask(const std::vector<int> mvals) const {
70    return table_->setMask(mvals);
71  }
72
73  std::string getSourceName(int whichRow) {
74    return table_->getSourceName(whichRow);
75  }
76
77  bool setIF(int whichIF=0) {return table_->setIF(whichIF);}
78  bool setBeam(int whichBeam=0) {return table_->setBeam(whichBeam);}
79  bool setPol(int whichPol=0) {return table_->setPol(whichPol);}
80
81  int getIF() {return table_->getIF();}
82  int getBeam() {return table_->getBeam();}
83  int getPol() {return table_->getPol();}
84
85  int nIF() {return table_->nIF();}
86  int nBeam() {return table_->nBeam();}
87  int nPol() {return table_->nPol();}
88  int nChan() {return table_->nChan();}
89
90  //sets the mask
91  bool setChannels(const std::vector<int>& whichChans) {
92    return setChannels(whichChans);
93  }
94  void makePersistent(const std::string& fname) {
95    table_->makePersistent(fname);
96  }
97  CountedPtr<SDMemTable> getCP() const {return table_;}
98  void summary() { table_->summary(); }
99  std::string name() { return table_->name(); }
100 
101private:
102  CountedPtr<SDMemTable> table_;
103};
104
105class SDReaderWrapper : public SDReader {
106public:
107  SDReaderWrapper() {;}
108  SDReaderWrapper(SDMemTableWrapper tbl) :
109    SDReader(tbl.getCP()){;}
110  SDMemTableWrapper getSDMemTable() const {
111    return SDMemTableWrapper(getTable());
112  }
113};
114
115class SDMathWrapper {
116public:
117  SDMemTableWrapper average(const SDMemTableWrapper& sdt) {
118    return SDMemTableWrapper(SDMath::average(sdt.getCP()));
119  }
120  SDMemTableWrapper quotient(const SDMemTableWrapper& on,
121                             const SDMemTableWrapper& off) {
122    return SDMemTableWrapper(SDMath::quotient(on.getCP(),
123                                             off.getCP()));
124  }
125  SDMemTableWrapper multiply(const SDMemTableWrapper& in,
126                             Float factor) {
127    return SDMemTableWrapper(SDMath::multiply(in.getCP(),factor));
128  }
129};
130
131} // namespace
132
133#endif
134
Note: See TracBrowser for help on using the repository browser.