This file is indexed.

/usr/include/casacore/images/Images/ImageAttrGroupHDF5.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
//# ImageAttrGroupHDF5.h: Attribute group for a HDF5 image
//# Copyright (C) 2012
//# 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 IMAGES_IMAGEATTRGROUPHDF5_H
#define IMAGES_IMAGEATTRGROUPHDF5_H

//# Includes
#include <casacore/casa/aips.h>
#include <casacore/images/Images/ImageAttrGroup.h>
#include <casacore/tables/Tables/TableProxy.h>
#include <casacore/casa/HDF5/HDF5Group.h>

namespace casacore {

// <summary>
// Attribute group for a HDF5 image.
// </summary>
//
// <use visibility=export>
//
// <reviewed reviewer="" date="" tests="tPagedmage.cc" demos="dPagedImage.cc">
// </reviewed>
//
// <prerequisite>
//   <li> <linkto class=ImageAttrGroup>ImageAttrGroup</linkto>
// </prerequisite>
//
// <synopsis> 
// This is the implementation of base class class ImageAttrGroup for an image
// stored in the HDF5 format.
// See the base class for more information.
// </synopsis>

class ImageAttrGroupHDF5 : public ImageAttrGroup
{
public: 
  // The default constructor creates a null object.
  explicit ImageAttrGroupHDF5 (Bool isWritable=False)
    : itsChanged  (False),
      itsCanWrite (isWritable)
  {}

  // Construct the object for an attribute group in the image.
  // If present, it reads all attributes.
  ImageAttrGroupHDF5 (const HDF5Group& image, const String& attrGroupName,
                      Bool writable);

  virtual ~ImageAttrGroupHDF5();

  // Test if it is a null object.
  Bool isNull() const
    { return itsRecord.empty(); }

  // Flush the attibrutes if needed.
  void flush (HDF5Group& image, const String& attrGroupName);

  // Get the number of rows in the group.
  virtual uInt nrows() const;

  // Test if an attribute exists.
  virtual Bool hasAttr (const String& attrName) const;

  // Get all attribute names.
  virtual Vector<String> attrNames() const;

  // Get the datatype of a attribute.
  // It returns TpOther if the attribute is not defined.
  virtual DataType dataType (const String& attrName) const;

  // Get the data of the given attribute in the given row.
  virtual ValueHolder getData (const String& attrName, uInt rownr);

  // Get the data of all attributes in a rows.
  virtual Record getDataRow (uInt rownr);

  // Get the possible units of the values (stored as attrName_UNIT).
  // An empty vector is returned if the attribute has no units.
  virtual Vector<String> getUnit (const String& attrName);

  // Get the possible measure info as type,Ref (stored as attrName_MEASINFO).
  // An empty vector is returned if the attribute has no MEASINFO.
  virtual Vector<String> getMeasInfo (const String& attrName);

  // Put the data of the given attribute.
  // If the table does not contain data yet, it will be sized to the size
  // of the vector. Otherwise the vector size has to match the table size.
  // <br>If not empty, the units and MEASINFO will be put as column keywords.
  // The MEASINFO vector must be given as type,Ref.
  virtual void putData (const String& attrName, uInt rownr,
                        const ValueHolder& data,
                        const Vector<String>& units = Vector<String>(),
                        const Vector<String>& measInfo = Vector<String>());

private:
  // Check the rownr and add a row if needed.
  void checkRows (const String& attrName, uInt rownr);

  //# Data members.
  Record itsRecord;     //# Record containing all attributes (subrecord per row)
  Bool   itsChanged;    //# Has the Record changed?
  Bool   itsCanWrite;   //# Can attributes be written?
};

} //# NAMESPACE CASACORE - END

#endif