7 |
use base qw/Class::Accessor/; |
use base qw/Class::Accessor/; |
8 |
__PACKAGE__->mk_accessors( qw/ |
__PACKAGE__->mk_accessors( qw/ |
9 |
id |
id |
10 |
|
dir |
11 |
|
clean |
12 |
debug |
debug |
13 |
|
|
14 |
/ ); |
/ ); |
16 |
#use Carp qw/confess/; |
#use Carp qw/confess/; |
17 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
18 |
use File::Spec; |
use File::Spec; |
19 |
use File::Path qw/mkpath/; |
use File::Path qw/mkpath rmtree/; |
20 |
use IPC::DirQueue; |
use IPC::DirQueue; |
21 |
use YAML qw/Dump/; |
use YAML::Syck qw/Dump/; |
22 |
use Carp qw/confess/; |
use Carp qw/confess/; |
23 |
|
|
24 |
|
#use Devel::LeakTrace::Fast; |
25 |
|
|
26 |
=head1 NAME |
=head1 NAME |
27 |
|
|
28 |
CWMP::Queue - implement commands queue for CPE |
CWMP::Queue - implement commands queue for CPE |
33 |
|
|
34 |
my $obj = CWMP::Queue->new({ |
my $obj = CWMP::Queue->new({ |
35 |
id => 'CPE_serial_number', |
id => 'CPE_serial_number', |
36 |
|
dir => 'queue', |
37 |
|
clean => 1, |
38 |
debug => 1 |
debug => 1 |
39 |
}); |
}); |
40 |
|
|
48 |
|
|
49 |
warn "created ", __PACKAGE__, "(", dump( @_ ), ") object\n" if $self->debug; |
warn "created ", __PACKAGE__, "(", dump( @_ ), ") object\n" if $self->debug; |
50 |
|
|
51 |
my $dir = File::Spec->catfile('queue',$self->id); |
my $dir = File::Spec->catfile( $self->dir || 'queue', $self->id ); |
52 |
|
|
53 |
|
if ( -e $dir && $self->clean ) { |
54 |
|
rmtree $dir || die "can't remove $dir: $!"; |
55 |
|
warn "## clean $dir\n" if $self->debug; |
56 |
|
} |
57 |
|
|
58 |
if ( ! -e $dir ) { |
if ( ! -e $dir ) { |
59 |
mkpath $dir || die "can't create $dir: $!"; |
mkpath $dir || die "can't create $dir: $!"; |
172 |
sub finish { |
sub finish { |
173 |
my $self = shift; |
my $self = shift; |
174 |
$self->job->finish; |
$self->job->finish; |
175 |
|
return 1; |
176 |
} |
} |
177 |
|
|
178 |
1; |
1; |