casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
casacore::TSMFile Class Reference

File object for Tiled Storage Manager. More...

#include <TSMFile.h>

Public Member Functions

 TSMFile (const TiledStMan *stMan, uInt fileSequenceNr, const TSMOption &, MultiFileBase *mfile=0)
 Create a TSMFile object (with corresponding file). More...
 
 TSMFile (const String &fileName, Bool writable, const TSMOption &, MultiFileBase *mfile=0)
 Create a TSMFile object for the given existing file. More...
 
 TSMFile (const TiledStMan *stMan, AipsIO &ios, uInt seqnr, const TSMOption &, MultiFileBase *mfile=0)
 Read the object back. More...
 
 ~TSMFile ()
 The destructor closes the file. More...
 
void putObject (AipsIO &ios) const
 Write the object. More...
 
void getObject (AipsIO &ios)
 Get the object. More...
 
void open ()
 Open the file if not open yet. More...
 
BucketFilebucketFile ()
 Return the BucketFile object (to be used in the BucketCache). More...
 
Int64 length () const
 Return the logical file length. More...
 
uInt sequenceNumber () const
 Return the file sequence number. More...
 
void extend (Int64 increment)
 Increment the logical file length. More...
 

Private Member Functions

 TSMFile (const TSMFile &)
 Forbid copy constructor. More...
 
TSMFileoperator= (const TSMFile &)
 Forbid assignment. More...
 

Private Attributes

uInt fileSeqnr_p
 The file sequence number. More...
 
BucketFilefile_p
 The file object. More...
 
Int64 length_p
 The (logical) length of the file. More...
 

Detailed Description

File object for Tiled Storage Manager.

Intended use:

Internal

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25

Prerequisite

Etymology

TSMFile represents a data file for the Tiled Storage Manager.

Synopsis

A TSMFile object represents a data file. Currently it is meant for the TiledStMan classes, but it can easily be turned into a more general storage manager file class.
Creation of a TSMFile object does not open the file. An explicit open call has to be given before the file can be used.

Underneath it uses a BucketFile to access the file. In this way the IO details are well encapsulated.

Motivation

Encapsulate the Tiled Storage Manager file details.

Definition at line 81 of file TSMFile.h.

Constructor & Destructor Documentation

casacore::TSMFile::TSMFile ( const TiledStMan stMan,
uInt  fileSequenceNr,
const TSMOption ,
MultiFileBase mfile = 0 
)

Create a TSMFile object (with corresponding file).

The sequence number gets part of the file name.

casacore::TSMFile::TSMFile ( const String fileName,
Bool  writable,
const TSMOption ,
MultiFileBase mfile = 0 
)

Create a TSMFile object for the given existing file.

casacore::TSMFile::TSMFile ( const TiledStMan stMan,
AipsIO ios,
uInt  seqnr,
const TSMOption ,
MultiFileBase mfile = 0 
)

Read the object back.

The file is not opened until the first access, thus until the file descriptor is asked for the first time. It checks if the sequence number matches the expected one.

casacore::TSMFile::~TSMFile ( )

The destructor closes the file.

casacore::TSMFile::TSMFile ( const TSMFile )
private

Forbid copy constructor.

Member Function Documentation

BucketFile * casacore::TSMFile::bucketFile ( )
inline

Return the BucketFile object (to be used in the BucketCache).

Definition at line 151 of file TSMFile.h.

References file_p.

void casacore::TSMFile::extend ( Int64  increment)
inline

Increment the logical file length.

Definition at line 148 of file TSMFile.h.

References length_p.

void casacore::TSMFile::getObject ( AipsIO ios)

Get the object.

Int64 casacore::TSMFile::length ( ) const
inline

Return the logical file length.

Definition at line 142 of file TSMFile.h.

References length_p.

void casacore::TSMFile::open ( )
inline

Open the file if not open yet.

Definition at line 154 of file TSMFile.h.

References file_p, and casacore::BucketFile::open().

TSMFile& casacore::TSMFile::operator= ( const TSMFile )
private

Forbid assignment.

void casacore::TSMFile::putObject ( AipsIO ios) const

Write the object.

uInt casacore::TSMFile::sequenceNumber ( ) const
inline

Return the file sequence number.

Definition at line 145 of file TSMFile.h.

References fileSeqnr_p.

Member Data Documentation

BucketFile* casacore::TSMFile::file_p
private

The file object.

Definition at line 129 of file TSMFile.h.

Referenced by bucketFile(), and open().

uInt casacore::TSMFile::fileSeqnr_p
private

The file sequence number.

Definition at line 127 of file TSMFile.h.

Referenced by sequenceNumber().

Int64 casacore::TSMFile::length_p
private

The (logical) length of the file.

Definition at line 131 of file TSMFile.h.

Referenced by extend(), and length().


The documentation for this class was generated from the following file: