App-SimpleBackuper
view release on metacpan or search on metacpan
local/lib/perl5/Net/SFTP/Foreign/Attributes.pm view on Meta::CPAN
}
elsif (!defined $atime and !defined $mtime) {
$self->{flags} &= ~SSH2_FILEXFER_ATTR_ACMODTIME;
delete $self->{atime};
delete $self->{mtime};
}
else {
croak "wrong arguments for set_amtime"
}
}
sub extended { @{shift->{extended} || [] } }
sub set_extended {
my $self = shift;
@_ & 1 and croak "odd number of arguments passed to set_extended";
if (@_) {
$self->{flags} |= SSH2_FILEXFER_ATTR_EXTENDED;
$self->{extended} = [@_];
}
else {
$self->{flags} &= ~SSH2_FILEXFER_ATTR_EXTENDED;
delete $self->{extended};
}
}
sub append_extended {
my $self = shift;
@_ & 1 and croak "odd number of arguments passed to append_extended";
my $pairs = $self->{extended};
if (@$pairs) {
push @$pairs, @_;
}
else {
$self->set_extended(@_);
}
}
sub clone {
my $self = shift;
my $clone = { %$self };
bless $clone, ref $self;
$clone;
}
1;
__END__
=head1 NAME
Net::SFTP::Foreign::Attributes - File/directory attribute container
=head1 SYNOPSIS
use Net::SFTP::Foreign;
my $a1 = Net::SFTP::Foreign::Attributes->new();
$a1->set_size($size);
$a1->set_ugid($uid, $gid);
my $a2 = $sftp->stat($file)
or die "remote stat command failed: ".$sftp->status;
my $size = $a2->size;
my $mtime = $a2->mtime;
=head1 DESCRIPTION
I<Net::SFTP::Foreign::Attributes> encapsulates file/directory
attributes for I<Net::SFTP::Foreign>. It also provides serialization
and deserialization methods to encode/decode attributes into
I<Net::SFTP::Foreign::Buffer> objects.
=head1 USAGE
=over 4
=item Net::SFTP::Foreign::Attributes-E<gt>new()
Returns a new C<Net::SFTP::Foreign::Attributes> object.
=item Net::SFTP::Foreign::Attributes-E<gt>new_from_buffer($buffer)
Creates a new attributes object and populates it with information read
from C<$buffer>.
=item $attrs-E<gt>as_buffer
Serializes the I<Attributes> object I<$attrs> into a buffer object.
=item $attrs-E<gt>flags
returns the value of the flags field.
=item $attrs-E<gt>size
returns the values of the size field or undef if it is not set.
=item $attrs-E<gt>uid
returns the value of the uid field or undef if it is not set.
=item $attrs-E<gt>gid
returns the value of the gid field or undef if it is not set.
=item $attrs-E<gt>perm
returns the value of the permissions field or undef if it is not set.
See also L<perlfunc/stat> for instructions on how to process the
returned value with the L<Fcntl> module.
For instance, the following code checks if some attributes object
corresponds to a directory:
use Fcntl qw(S_ISDIR);
...
if (S_ISDIR($attr->perm)) {
# it is a directory!
}
( run in 3.146 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )