Line data Source code
1 : // -*- mode: c++ -*- 2 : //# ParallelImagerAdaptor.h: Adapt ParallelImagerMixin classes to ParallelImager 3 : //# interface 4 : //# Copyright (C) 2016 5 : //# Associated Universities, Inc. Washington DC, USA. 6 : //# 7 : //# This library is free software; you can redistribute it and/or modify it 8 : //# under the terms of the GNU Library General Public License as published by 9 : //# the Free Software Foundation; either version 2 of the License, or (at your 10 : //# option) any later version. 11 : //# 12 : //# This library is distributed in the hope that it will be useful, but WITHOUT 13 : //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 : //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 15 : //# License for more details. 16 : //# 17 : //# You should have received a copy of the GNU Library General Public License 18 : //# along with this library; if not, write to the Free Software Foundation, 19 : //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 20 : //# 21 : //# Correspondence concerning AIPS++ should be addressed as follows: 22 : //# Internet email: aips2-request@nrao.edu. 23 : //# Postal address: AIPS++ Project Office 24 : //# National Radio Astronomy Observatory 25 : //# 520 Edgemont Road 26 : //# Charlottesville, VA 22903-2475 USA 27 : //# 28 : #ifndef PARALLEL_IMAGER_ADAPTOR_H_ 29 : #define PARALLEL_IMAGER_ADAPTOR_H_ 30 : 31 : #include <synthesis/ImagerObjects/ParallelImager.h> 32 : #include <synthesis/ImagerObjects/ParallelImagerMixin.h> 33 : 34 : namespace casa { 35 : 36 : /** 37 : * Adaptor for ParallelImagerMixin implementation classes as ParallelImager 38 : * instances. 39 : */ 40 : 41 : template <class T> 42 : class ParallelImagerAdaptor 43 : : public ParallelImager, public T 44 : { 45 : public: 46 : using T::T; 47 : 48 0 : virtual casacore::Record clean() { 49 0 : return T::clean(); 50 : }; 51 : }; 52 : 53 : // Standard parallel imager classes based on implementation classes in 54 : // ParallelImagerMixin.h 55 : 56 : //Parallel continuum imager 57 : typedef ParallelImagerAdaptor<ContinuumParallelImagerImpl> ContinuumParallelImager; 58 : 59 : // Parallel cube imager 60 : typedef ParallelImagerAdaptor<CubeParallelImagerImpl> CubeParallelImager; 61 : 62 : // Serial imager 63 : typedef ParallelImagerAdaptor<SerialParallelImagerImpl> SerialParallelImager; 64 : } // namespace casa 65 : 66 : #endif // PARALLEL_IMAGER_ADAPTOR_H_