Chris Marshall

NAME

PDL::IO::HDF5::Group - PDL::IO::HDF5 Helper Object representing HDF5 groups.

DESCRIPTION

This is a helper-object used by PDL::IO::HDF5 to interface with HDF5 format's group objects. Information on the HDF5 Format can be found at the HDF Group's web site at http://www.hdfgroup.org .

SYNOPSIS

See PDL::IO::HDF5

MEMBER DATA

ID

ID number given to the group by the HDF5 library

name

Name of the group. (Absolute to the root group '/'. e.g. /maingroup/subgroup)

parent

Ref to parent object (file or group) that owns this group.

fileObj

Ref to the PDL::IO::HDF5 object that owns this object.

METHODS

####---------------------------------------------------------

new

PDL::IO::HDF5::Group Constructor - creates new object

Usage:

This object will usually be created using the calling format detailed in the SYNOPSIS. The following syntax is used by the PDL::IO::HDF5 object to build the object.

   $a = new PDL::IO::HDF5:Group( name => $name, parent => $parent,
                              fileObj => $fileObj );
        Args:
        $name                           Name of the group (relative to the parent)
        $parent                         Parent Object that owns this group
        $fileObj                        PDL::HDF (Top Level) object that owns this group.

DESTROY

PDL::IO::HDF5 Destructor - Closes the HDF5::Group Object.

Usage:

   No Usage. Automatically called
   

attrSet

Set the value of an attribute(s)

Supports null-terminated strings, integers and floating point scalar and 1D array attributes.

Usage:

   $group->attrSet( 'attr1' => 'attr1Value',
                    'attr2' => 'attr2 value', 
                    'attr3' => $pdl,
                    .
                    .
                    .
                   );

Returns undef on failure, 1 on success.

attrGet

Get the value of an attribute(s)

Supports null-terminated strings, integer and floating point scalar and 1D array attributes.

Usage:

   my @attrs = $group->attrGet( 'attr1', 'attr2');

attrDel

Delete attribute(s)

Usage:

   $group->attrDel( 'attr1', 
                    'attr2',
                    .
                    .
                    .
                   );

Returns undef on failure, 1 on success.

attrs

Get a list of all attribute names in a group

Usage:

   @attrs = $group->attrs;

dataset

Open an existing or create a new dataset in a group.

Usage:

   $dataset = $group->dataset('newdataset');

Returns undef on failure, 1 on success.

datasets

Get a list of all dataset names in a group. (Relative to the current group)

Usage:

   @datasets = $group->datasets;

group

Open an existing or create a new group in an existing group.

Usage:

   $newgroup = $oldgroup->group("newgroup");

Returns undef on failure, 1 on success.

groups

Get a list of all group names in a group. (Relative to the current group)

Usage:

   @groupNames = $group->groups;

_buildAttrIndex

Internal Recursive Method to build the attribute index hash for the object

For the purposes of indexing groups by their attributes, the attributes are applied hierarchial. i.e. any attributes of the higher level groups are assumed to be apply for the lower level groups.

Usage:

   $group->_buildAttrIndex($index, $currentAttrs);

    
 Input/Output:

         $index:        Total Index hash ref
         $currentAttrs: Hash refs of the attributes valid 
                        for the current group.
                        

IDget

Returns the HDF5 library ID for this object

Usage:

 my $ID = $groupObj->IDget;

nameGet

Returns the HDF5 Group Name for this object. (Relative to the root group)

Usage:

 my $name = $groupObj->nameGet;

reference

Creates a reference to a region of a dataset.

Usage:

  $groupObj->reference($referenceName,$datasetObj,@regionStart,@regionCount);

Create a reference named $referenceName within the group $groupObj to a subroutine of the dataset $datasetObj. The region to be referenced is defined by the @regionStart and @regionCount arrays.

Unlink an object from a group.

Usage:

  $groupObj->unlink($objectName);

Unlink the named object from the group.