File-Information
view release on metacpan or search on metacpan
lib/File/Information/Deep.pm view on Meta::CPAN
package File::Information::Deep;
use v5.10;
use strict;
use warnings;
use parent 'File::Information::Base';
use Carp;
use Scalar::Util qw(weaken);
our $VERSION = v0.10;
my %_properties = (
pdf_version => {loader => \&_load_pdf},
pdf_pages => {loader => \&_load_pdf},
odf_keywords => {loader => \&_load_odf},
data_uriid_barcodes => {loader => \&_load_barcodes, rawtype => 'Data::URIID::Barcode'},
);
lib/File/Information/Deep.pm view on Meta::CPAN
return $self->SUPER::property_info(@args);
}
sub _new {
my ($pkg, %opts) = @_;
my $self = $pkg->SUPER::_new(%opts, properties => \%_properties);
my $pv = ($self->{properties_values} //= {})->{current} //= {};
my $parent = $self->{parent};
weaken($self->{parent});
# copy a few critical values:
$pv->{contentise} = {raw => $parent->get('contentise', lifecycle => 'current', as => 'uuid')};
$pv->{mediatype} = {raw => $parent->get('mediatype', lifecycle => 'current', as => 'mediatype')};
return $self;
}
sub _dynamic_property {
my ($self, $prefix, $property) = @_;
lib/File/Information/Tagpool.pm view on Meta::CPAN
use v5.10;
use strict;
use warnings;
use parent 'File::Information::Base';
use Carp;
use File::Spec;
use Sys::Hostname ();
use Scalar::Util qw(weaken);
use File::Information::Lock;
our $VERSION = v0.10;
my $HAVE_FILE_VALUEFILE = eval {require File::ValueFile::Simple::Reader; require File::ValueFile::Simple::Writer; 1;};
my %_properties = (
tagpool_pool_path => {loader => \&_load_tagpool, rawtype => 'filename'},
);
lib/File/Information/Tagpool.pm view on Meta::CPAN
close($out);
for (my $i = 0; $i < 3; $i++) {
if (link($lockname, $lockfile)) {
# Success.
$self->{lockfile} = $lockfile;
$self->{lockname} = $lockname;
{
my $lock = File::Information::Lock->new(parent => $self, on_unlock => \&_unlock);
$locks->{$lock} = $lock;
weaken($locks->{$lock}); # it holds a reference to us, so our's will be weak.
return $lock;
}
}
sleep(1);
}
unlink($lockname);
croak 'Can not lock pool';
}
{
my $lock = File::Information::Lock->new(parent => $self, on_unlock => \&_unlock);
$locks->{$lock} = $lock;
weaken($locks->{$lock}); # it holds a reference to us, so our's will be weak.
return $lock;
}
}
sub locked {
my ($self, $func) = @_;
my $lock = $self->lock;
return $func->();
}
( run in 0.270 second using v1.01-cache-2.11-cpan-a9ef4e587e4 )