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

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

Make python wrapper noncopyable

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 explicit FillerWrapper(ScantableWrapper tbl) : filler_(0), attached_(false)
34 { stable_ = tbl.getCP(); }
35
36 virtual ~FillerWrapper() { close(); }
37
38
39// void open(const std::string& filename, casa::Record rec) {
40 void open(const std::string& filename) {
41// filler_ = new ATFiller(stable_);
42// if (filler_->open(filename, rec)) {
43 if (filler_->open(filename)) {
44 attached_ = true;
45 return;
46 }
47// filler_ = new NROFiller(stable_);
48// if (filler_->open(filename, rec)) {
49 if (filler_->open(filename)) {
50 attached_ = true;
51 return;
52 }
53 filler_ = 0;
54 attached_ = false;
55 throw casa::AipsError("Unknown Data Format");
56 }
57 void close() {
58 if (attached_) {
59 filler_->close();
60 }
61 }
62
63 void fill() {
64 if (attached_) {
65 filler_->fill();
66 }
67 }
68
69 void setReferenceRegex(const std::string& rx) {
70 if (attached_) {
71 filler_->setReferenceRegex(rx);
72 }
73 }
74
75private:
76
77 FillerWrapper() {;}
78 FillerWrapper(const FillerWrapper& other) {;}
79
80 casa::CountedPtr<FillerBase> filler_;
81 bool attached_;
82 casa::CountedPtr<Scantable> stable_;
83};
84
85};
86#endif
Note: See TracBrowser for help on using the repository browser.