BIE-Data-HDF5-Path

 view release on metacpan or  search on metacpan

lib/BIE/Data/HDF5/Path.pm  view on Meta::CPAN

package BIE::Data::HDF5::Path;
our $VERSION = '0.01';
use Moose;
use namespace::autoclean;
use v5.10;
use BIE::Data::HDF5 ':all';
use BIE::Data::HDF5::Data;

has 'id' => (
	     is => 'ro',
	     isa => 'Int',
	     required => 1,
	    );

has 'name' => (
	       is => 'ro',
	       isa => 'Str',
	       lazy => 1,
	       default => sub {
		 my $self = shift;
		 h5name($self->id);
	       },
	      );

#only support relative path currently
sub mkPath {
  my ($self, $path) = @_;
  my @parts = split /\b\/\b/, $path;
  my $tmp1 = H5Gcreate($self->id, $parts[0]);
  for my $p (@parts[1..$#parts]) {
    my $tmp2 = $tmp1;
    $tmp1 = H5Gcreate($tmp2, $p);
    H5Gclose($tmp2);
  }
  H5Gclose($tmp1);			 
}

sub list {
  my $self = shift;
  h5ls($self->id);
}

sub cd {
  my $self = shift;
  if (@_) {
    my $p = shift;
    BIE::Data::HDF5::Path->new(id => H5Gopen($self->id, $p));
  }
}

sub openData {
  my $self = shift;
  if (@_) {
    BIE::Data::HDF5::Data->new(
			       id => H5Dopen($self->id, shift),
			      );
  }
  else {
    undef;
  }
}

sub DEMOLISH {
  my $self = shift;



( run in 0.604 second using v1.01-cache-2.11-cpan-39bf76dae61 )