/[cwmp]/google/trunk/lib/CWMP/Queue.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /google/trunk/lib/CWMP/Queue.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 196 by dpavlin, Mon Nov 12 20:56:56 2007 UTC revision 197 by dpavlin, Mon Nov 12 22:03:01 2007 UTC
# Line 16  use Data::Dump qw/dump/; Line 16  use Data::Dump qw/dump/;
16  use File::Spec;  use File::Spec;
17  use File::Path qw/mkpath/;  use File::Path qw/mkpath/;
18  use IPC::DirQueue;  use IPC::DirQueue;
19    use YAML qw/Dump/;
20  use Carp qw/confess/;  use Carp qw/confess/;
21    
22  =head1 NAME  =head1 NAME
# Line 74  sub enqueue { Line 75  sub enqueue {
75          my $self = shift;          my $self = shift;
76    
77          my $id = $self->id;          my $id = $self->id;
78          my $data = {@_} || confess "need data";          
79            warn "## enqueue( $id, ", dump( @_ ), " )\n" if $self->debug;
80          warn "## enqueue( $id, ", dump( $data ), " )\n" if $self->debug;          
81            $self->{dq}->{$id}->enqueue_string( Dump( @_ ) );
         $self->{dq}->{$id}->enqueue_string( $id, $data );  
82  }  }
83    
84  =head2 dequeue  =head2 dequeue
85    
86    my $data = $q->dequeue;    my $job = $q->dequeue;
87      my $dispatch = $job->dispatch;
88      # after dispatch is processed
89      $job->finish;
90    
91  =cut  =cut
92    
# Line 92  sub dequeue { Line 95  sub dequeue {
95    
96          my $id = $self->id;          my $id = $self->id;
97    
98          my $data = $self->{dq}->{$id}->pickup_queued_job();          my $job = $self->{dq}->{$id}->pickup_queued_job();
99          return unless defined $data;          return unless defined $job;
100    
101            warn "## dequeue( $id ) = ", dump( $job ), " )\n" if $self->debug;
102    
103            return CWMP::Queue::Job->new({ job => $job });
104    }
105    
106    package CWMP::Queue::Job;
107    
108          warn "## dequeue( $id ) = ", dump( $data ), " )\n" if $self->debug;  use base qw/Class::Accessor/;
109    __PACKAGE__->mk_accessors( qw/
110    job
111    / );
112    
113          return $data->{metadata};  use YAML qw/LoadFile/;
114    
115    sub dispatch {
116            my $self = shift;
117            my $path = $self->job->get_data_path || die "get_data_path?";
118            return LoadFile( $path ) || die "can't read $path: $!";
119    }
120    
121    sub finish {
122            my $self = shift;
123            $self->job->finish;
124  }  }
125    
126  1;  1;

Legend:
Removed from v.196  
changed lines
  Added in v.197

  ViewVC Help
Powered by ViewVC 1.1.26