Abstract base class for Bucket classes. More...
#include <BucketBase.h>
Public Member Functions | |
BucketBase (BucketFile *file, Int64 startOffset, uInt bucketSize, uInt nrOfBuckets) | |
Create the bucket access for (part of) a file. | |
virtual | ~BucketBase () |
Detach the file. | |
Bool | flush () |
Flush the cached buckets. | |
virtual void | resync (uInt nrBucket) |
Resynchronize the object (after another process updated the file). | |
uInt | nBucket () const |
Get the current nr of buckets in the file. | |
void | extend (uInt nrBucket) |
Extend the file with the given number of buckets. | |
void | setWritten () |
Set that data has been written. | |
Protected Member Functions | |
BucketBase (const BucketBase &) | |
Copy constructor is not possible. | |
BucketBase & | operator= (const BucketBase &) |
Assignment is not possible. | |
virtual void | doFlush ()=0 |
Do the actual flushing. | |
virtual void | doResync ()=0 |
Do the actual resync-ing. | |
virtual void | doExtend (uInt nrBucket)=0 |
Do the actual extension of the file. | |
virtual void | initializeBuckets (uInt bucketNr)=0 |
Initialize the bucket buffer. | |
Protected Attributes | |
BucketFile * | itsFile |
The file used. | |
Int64 | itsStartOffset |
The starting offsets of the buckets in the file. | |
uInt | itsBucketSize |
The bucket size. | |
uInt | itsCurNrOfBuckets |
The current nr of buckets in the file. | |
uInt | itsNewNrOfBuckets |
The new nr of buckets in the file (after extension). | |
Bool | itsHasWritten |
Have data been written? |
Abstract base class for Bucket classes.
Internal
BucketBase is the abstract baseclass for the various Bucket classes like BucketMapped and BucketBuffered. It is used by TSMCube to do the IO in the required way.
Definition at line 59 of file BucketBase.h.
casacore::BucketBase::BucketBase | ( | BucketFile * | file, | |
Int64 | startOffset, | |||
uInt | bucketSize, | |||
uInt | nrOfBuckets | |||
) |
virtual casacore::BucketBase::~BucketBase | ( | ) | [virtual] |
Detach the file.
The BucketFile is not closed.
casacore::BucketBase::BucketBase | ( | const BucketBase & | ) | [protected] |
Copy constructor is not possible.
virtual void casacore::BucketBase::doExtend | ( | uInt | nrBucket | ) | [protected, pure virtual] |
Do the actual extension of the file.
Note that itsNewNrOfBuckets has been increased before doExtend is called.
Implemented in casacore::BucketBuffered, and casacore::BucketMapped.
virtual void casacore::BucketBase::doFlush | ( | ) | [protected, pure virtual] |
Do the actual flushing.
Implemented in casacore::BucketBuffered, and casacore::BucketMapped.
virtual void casacore::BucketBase::doResync | ( | ) | [protected, pure virtual] |
Do the actual resync-ing.
Implemented in casacore::BucketBuffered, and casacore::BucketMapped.
void casacore::BucketBase::extend | ( | uInt | nrBucket | ) |
Extend the file with the given number of buckets.
The buckets get initialized when they are acquired (using getBucket) for the first time.
Bool casacore::BucketBase::flush | ( | ) |
Flush the cached buckets.
Possibly remaining uninitialized buckets will be initialized first. A True status is returned if buckets had to be written. The actual flushing is done using doFlush
in the derived class.
virtual void casacore::BucketBase::initializeBuckets | ( | uInt | bucketNr | ) | [protected, pure virtual] |
Initialize the bucket buffer.
The uninitialized buckets before this bucket are also initialized.
Implemented in casacore::BucketBuffered, and casacore::BucketMapped.
uInt casacore::BucketBase::nBucket | ( | ) | const [inline] |
Get the current nr of buckets in the file.
Definition at line 86 of file BucketBase.h.
References itsCurNrOfBuckets.
BucketBase& casacore::BucketBase::operator= | ( | const BucketBase & | ) | [protected] |
Assignment is not possible.
Reimplemented in casacore::BucketBuffered, and casacore::BucketMapped.
virtual void casacore::BucketBase::resync | ( | uInt | nrBucket | ) | [virtual] |
void casacore::BucketBase::setWritten | ( | ) | [inline] |
Set that data has been written.
Definition at line 95 of file BucketBase.h.
References itsHasWritten, and casacore::True.
uInt casacore::BucketBase::itsBucketSize [protected] |
The bucket size.
Definition at line 125 of file BucketBase.h.
uInt casacore::BucketBase::itsCurNrOfBuckets [protected] |
The current nr of buckets in the file.
Definition at line 127 of file BucketBase.h.
Referenced by nBucket().
BucketFile* casacore::BucketBase::itsFile [protected] |
The file used.
Definition at line 121 of file BucketBase.h.
Bool casacore::BucketBase::itsHasWritten [protected] |
Have data been written?
Definition at line 131 of file BucketBase.h.
Referenced by casacore::BucketMapped::getrwBucket(), and setWritten().
uInt casacore::BucketBase::itsNewNrOfBuckets [protected] |
The new nr of buckets in the file (after extension).
Definition at line 129 of file BucketBase.h.
Int64 casacore::BucketBase::itsStartOffset [protected] |
The starting offsets of the buckets in the file.
Definition at line 123 of file BucketBase.h.