This file is indexed.

/usr/include/casacore/casa/IO/BucketBase.h is in casacore-dev 2.2.0-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
//# BucketBase.h: Abstract base class for Bucket classes
//# Copyright (C) 2010
//# 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: aips2-request@nrao.edu.
//#        Postal address: AIPS++ Project Office
//#                        National Radio Astronomy Observatory
//#                        520 Edgemont Road
//#                        Charlottesville, VA 22903-2475 USA
//#
//# $Id$

#ifndef CASA_BUCKETBASE_H
#define CASA_BUCKETBASE_H

//# Includes
#include <casacore/casa/aips.h>
#include <casacore/casa/IO/BucketFile.h>


namespace casacore { //# NAMESPACE CASACORE - BEGIN

  // <summary>
  // Abstract base class for Bucket classes.
  // </summary>

  // <use visibility=local>

  // <reviewed reviewer="UNKNOWN" date="before2004/08/25" tests="" demos="">
  // </reviewed>

  // <prerequisite>
  //# Classes you should understand before using this one.
  //   <li> <linkto class=BucketFile>BucketFile</linkto>
  // </prerequisite>

  // <synopsis>
  // 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.
  // </synopsis> 


  class BucketBase
  {
  public:
    // Create the bucket access for (part of) a file.
    // The file part starts at startOffset. Its length is
    // bucketSize*nrOfBuckets bytes.
    // If the file is smaller, the remainder is indicated as an extension
    // similarly to the behaviour of function extend.
    BucketBase (BucketFile* file, Int64 startOffset, uInt bucketSize,
                uInt nrOfBuckets);

    // Detach the file. The BucketFile is not closed.
    virtual ~BucketBase();

    // 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 <src>doFlush</src> in the derived
    // class.
    Bool flush();

    // Resynchronize the object (after another process updated the file).
    // It remaps the file if the nr of buckets has changed.
    // the new sizes.
    virtual void resync (uInt nrBucket);

    // Get the current nr of buckets in the file.
    uInt nBucket() const
      { return itsCurNrOfBuckets; }

    // Extend the file with the given number of buckets.
    // The buckets get initialized when they are acquired
    // (using getBucket) for the first time.
    void extend (uInt nrBucket);

    // Set that data has been written.
    void setWritten()
      { itsHasWritten = True; }

protected:
    // Copy constructor is not possible.
    BucketBase (const BucketBase&);

    // Assignment is not possible.
    BucketBase& operator= (const BucketBase&);

    // Do the actual flushing.
    virtual void doFlush() = 0;

    // Do the actual resync-ing.
    virtual void doResync() = 0;

    // Do the actual extension of the file.
    // Note that itsNewNrOfBuckets has been increased before doExtend is called.
    virtual void doExtend (uInt nrBucket) = 0;

    // Initialize the bucket buffer.
    // The uninitialized buckets before this bucket are also initialized.
    virtual void initializeBuckets (uInt bucketNr) = 0;


    // The file used.
    BucketFile* itsFile;
    // The starting offsets of the buckets in the file.
    Int64   itsStartOffset;
    // The bucket size.
    uInt    itsBucketSize;
    // The current nr of buckets in the file.
    uInt    itsCurNrOfBuckets;
    // The new nr of buckets in the file (after extension).
    uInt    itsNewNrOfBuckets;
    // Have data been written?
    Bool    itsHasWritten;
};


} //# NAMESPACE CASACORE - END

#endif