Loading...
Searching...
No Matches
TiledFileHelper.h
Go to the documentation of this file.
//# TiledFileHelper.h: Helper class for tiled access to an array in a file
//# Copyright (C) 2001,2002
//# Associated Universities, Inc. Washington DC, USA.
//#
//# This library is free software; you can redistribute it and/or modify it
//# under the terms of the GNU Library General Public License as published by
//# the Free Software Foundation; either version 2 of the License, or (at your
//# option) any later version.
//#
//# This library is distributed in the hope that it will be useful, but WITHOUT
//# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
//# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
//# License for more details.
//#
//# You should have received a copy of the GNU Library General Public License
//# along with this library; if not, write to the Free Software Foundation,
//# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA.
//#
//# Correspondence concerning AIPS++ should be addressed as follows:
//# Internet email: casa-feedback@nrao.edu.
//# Postal address: AIPS++ Project Office
//# National Radio Astronomy Observatory
//# 520 Edgemont Road
//# Charlottesville, VA 22903-2475 USA
#ifndef TABLES_TILEDFILEHELPER_H
#define TABLES_TILEDFILEHELPER_H
//# Includes
#include <casacore/casa/aips.h>
#include <casacore/tables/DataMan/TiledStMan.h>
#include <casacore/tables/Tables/TableDesc.h>
namespace casacore { //# NAMESPACE CASACORE - BEGIN
// <summary>
// Helper class for tiled access to an array in a file.
// </summary>
// <use visibility=local>
// <reviewed reviewer="" date="" tests="tTiledFileAccess.cc">
// </reviewed>
// <prerequisite>
//# Classes you should understand before using this one.
// <li> Description of Tiled Storage Manager in module file
// <linkto module=Tables:TiledStMan>Tables.h</linkto>
// </prerequisite>
// <synopsis>
// TiledFileHelper is a helper class for class
// <linkto class=TiledFileAccess>TiledFileAccess</linkto>.
// It sets up a table description containing one array column
// to make it possible to use the
// <linkto class=TiledStMan>tiled storage manager</linkto>
// to access an array in an arbitrary file.
// </synopsis>
// <motivation>
// This class was created to be able to read an image in a FITS file.
// </motivation>
//# <todo asof="$DATE:$">
//# A List of bugs, limitations, extensions or planned refinements.
//# </todo>
class TiledFileHelper : public TiledStMan
{
public:
// Create a TiledFileHelper object.
// Tell if the data is stored in big or little endian canonical format.
TiledFileHelper (const String& fileName, const IPosition& shape,
DataType dtype, const TSMOption&,
Bool writable, Bool bigEndian);
~TiledFileHelper();
// Forbid copy constructor.
TiledFileHelper (const TiledFileHelper&) = delete;
// Forbid assignment.
TiledFileHelper& operator= (const TiledFileHelper&) = delete;
virtual const TableDesc& getDesc() const;
TSMFile* file()
{ return fileSet_p[0]; }
// Return the class name.
virtual String dataManagerType() const;
// These functions are pure virtual, but not needed here.
// They throw an exception.
// <group>
virtual DataManager* clone() const;
virtual Bool flush (AipsIO&, Bool);
virtual void create64 (rownr_t);
virtual TSMCube* getHypercube (rownr_t);
virtual TSMCube* getHypercube (rownr_t, IPosition&);
virtual void readHeader (rownr_t, Bool);
// </group>
private:
TableDesc itsDesc;
};
} //# NAMESPACE CASACORE - END
#endif
casacore::AipsIO
Definition AipsIO.h:167
casacore::DataManager
Abstract base class for a data manager.
Definition DataManager.h:219
casacore::DataManager::fileName
String fileName() const
Compose a unique filename from the table name and sequence number.
casacore::IPosition
Definition IPosition.h:117
casacore::String
String: the storage and methods of handling collections of characters.
Definition String.h:223
casacore::TSMCube
Definition TSMCube.h:104
casacore::TSMFile
Definition TSMFile.h:80
casacore::TSMOption
Definition TSMOption.h:115
casacore::TableDesc
Definition TableDesc.h:189
casacore::TiledFileHelper::clone
virtual DataManager * clone() const
These functions are pure virtual, but not needed here.
casacore::TiledFileHelper::TiledFileHelper
TiledFileHelper(const String &fileName, const IPosition &shape, DataType dtype, const TSMOption &, Bool writable, Bool bigEndian)
Create a TiledFileHelper object.
casacore::TiledFileHelper::getDesc
virtual const TableDesc & getDesc() const
Get the table description needed for the hypercolumn description.
casacore::TiledFileHelper::~TiledFileHelper
~TiledFileHelper()
casacore::TiledFileHelper::getHypercube
virtual TSMCube * getHypercube(rownr_t, IPosition &)
Get the hypercube in which the given row is stored.
casacore::TiledFileHelper::flush
virtual Bool flush(AipsIO &, Bool)
Flush and optionally fsync the data.
casacore::TiledFileHelper::getHypercube
virtual TSMCube * getHypercube(rownr_t)
casacore::TiledFileHelper::operator=
TiledFileHelper & operator=(const TiledFileHelper &)=delete
Forbid assignment.
casacore::TiledFileHelper::readHeader
virtual void readHeader(rownr_t, Bool)
Let a derived class read the header info.
casacore::TiledFileHelper::TiledFileHelper
TiledFileHelper(const TiledFileHelper &)=delete
Forbid copy constructor.
casacore::TiledFileHelper::file
TSMFile * file()
Definition TiledFileHelper.h:90
casacore::TiledFileHelper::itsDesc
TableDesc itsDesc
Definition TiledFileHelper.h:108
casacore::TiledFileHelper::create64
virtual void create64(rownr_t)
Let the data manager initialize itself for a new table.
casacore::TiledFileHelper::dataManagerType
virtual String dataManagerType() const
Return the class name.
casacore::TiledStMan::TiledStMan
TiledStMan()
Create a TiledStMan.
casacore::TiledStMan::fileSet_p
PtrBlock< TSMFile * > fileSet_p
The assembly of all TSMFile objects.
Definition TiledStMan.h:511
casacore
this file contains all the compiler specific defines
Definition mainpage.dox:28
casacore::shape
IPosition shape(const RecordFieldId &) const
Get the actual shape of this field.
casacore::Bool
bool Bool
Define the standard types used by Casacore.
Definition aipstype.h:40
casacore::rownr_t
uInt64 rownr_t
Define the type of a row number in a table.
Definition aipsxtype.h:44