Re: usage question
[email protected] (Thomas J Pinkl) Mon, 5 Mar 2007 11:28:03 -0500
| Newsgroups | perl.ipc.dirqueue |
|---|---|
| Message-ID | <[email protected]> |
--nFreZHaLTZJo0R7j
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
On Mon, Mar 05, 2007 at 11:24:07AM +0000, Justin Mason wrote:
> Alternatively, I'd be happy to apply a patch that implements
> a version of visit_all_jobs() which allows writes somehow, or
> a way to access a job returned by visit_all_jobs() and render
> it writable.
Justin, here's a patch which adds an optional "readonly" parameter
to visit_all_jobs(). If the parameter isn't passed, then it defaults
to true, thus maintaining backward compatibility. The patch
includes changes to the POD as well. It's against the current SVN
source.
--
Thomas J. Pinkl | T: 215-442-9300
Senior Systems Architect | 800-444-1427
Health Business Systems, Inc | F: 215-442-7555
An SXC Company |
738 Louis Drive | http://www.hbsrx.com/
Warminster, PA 18974 | http://www.sxc.com/
--nFreZHaLTZJo0R7j
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="DirQueue.pm.patch"
--- DirQueue.pm.orig 2007-03-03 11:06:33.000000000 -0500
+++ DirQueue.pm 2007-03-05 11:19:08.000000000 -0500
@@ -708,10 +708,9 @@
###########################################################################
-=item $job = $dq->visit_all_jobs($visitor, $visitcontext);
+=item $job = $dq->visit_all_jobs($visitor, $visitcontext, $readonly);
-Visit all the jobs in the queue, in a read-only mode. Used to list
-the entire queue.
+Visit all the jobs in the queue. Used to list the entire queue.
The callback function C<$visitor> will be called for each job in
the queue, like so:
@@ -720,7 +719,8 @@
C<$visitcontext> is whatever you pass in that variable above.
C<$job> is a new, read-only instance of C<IPC::DirQueue::Job> representing
-that job.
+that job. C<$readonly> is an optional boolean flag and defaults to true
+if not passed.
If a job is active (being processed), the C<$job> object also contains the
following additional data:
@@ -731,7 +731,10 @@
=cut
sub visit_all_jobs {
- my ($self, $visitor, $visitcontext) = @_;
+ my ($self, $visitor, $visitcontext, $readonly) = @_;
+
+ $readonly = 1 if (! defined $readonly);
+ $readonly = 1 if ($readonly != 0);
my $pathqueuedir = $self->q_subdir('queue');
my $pathactivedir = $self->q_subdir('active');
@@ -764,7 +767,7 @@
}
my $job = IPC::DirQueue::Job->new ($self, {
- is_readonly => 1, # means finish() will not rm files
+ is_readonly => $readonly, # if true, means finish() will not rm files
jobid => $nextfilebase,
active_host => $acthost,
active_pid => $actpid,
--nFreZHaLTZJo0R7j--