source: trunk/src/SDMemTableWrapper.h@ 20

Last change on this file since 20 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.