source: branches/newfiller/src/FillerWrapper.h @ 1786

Last change on this file since 1786 was 1786, checked in by Malte Marquarding, 14 years ago

Added Wrapper and python binding for Filler

File size: 1.6 KB
Line 
1//
2// C++ Interface: Filler
3//
4// Description:
5//
6//
7// Author: Malte Marquarding <asap@atnf.csiro.au>, (C) 2010
8//
9// Copyright: See COPYING file that comes with this distribution
10//
11//
12#ifndef ASAPFILLER_H
13#define ASAPFILLER_H
14
15#include <casa/aips.h>
16#include <casa/Exceptions.h>
17#include <casa/Utilities/CountedPtr.h>
18#include <string>
19
20#include "ScantableWrapper.h"
21#include "FillerBase.h"
22/*
23#include "PKSFiller.h"
24#include "NROFiller.h"
25*/
26
27namespace asap
28{
29class FillerWrapper
30{
31public:
32
33  FillerWrapper() : filler_(0), attached_(false), stable_(0) {;}
34
35  FillerWrapper(ScantableWrapper tbl) : filler_(0), attached_(false)
36  { stable_ = tbl.getCP(); }
37
38  virtual ~FillerWrapper() { close(); }
39
40
41//  void open(const std::string& filename, casa::Record rec) {
42  void open(const std::string& filename) {
43//    filler_ = new ATFiller(stable_);
44//    if (filler_->open(filename, rec)) {
45    if (filler_->open(filename)) {
46      attached_ = true;
47      return;
48    }
49//    filler_ = new NROFiller(stable_);
50//    if (filler_->open(filename, rec)) {
51    if (filler_->open(filename)) {
52      attached_ = true;
53      return;
54    }
55    filler_ = 0;
56    attached_ = false;
57    throw casa::AipsError("Unknown Data Format");
58  }
59  void close() {
60    if (attached_) {
61      filler_->close();
62    }
63  }
64
65  void fill() {
66    if (attached_) {
67      filler_->fill();
68    }
69  }
70
71  void setReferenceRegex(const std::string& rx) {
72    if (attached_) {
73      filler_->setReferenceRegex(rx);
74    }
75  }
76
77private:
78
79  casa::CountedPtr<FillerBase> filler_;
80  bool attached_;
81  casa::CountedPtr<Scantable> stable_;
82};
83
84};
85#endif
Note: See TracBrowser for help on using the repository browser.