# -*- cperl -*- ## ==================================================================== ## ## Copyright (c) 2006 Carnegie Mellon University. All rights ## reserved. ## ## Redistribution and use in source and binary forms, with or without ## modification, are permitted provided that the following conditions ## are met: ## ## 1. Redistributions of source code must retain the above copyright ## notice, this list of conditions and the following disclaimer. ## ## 2. Redistributions in binary form must reproduce the above copyright ## notice, this list of conditions and the following disclaimer in ## the documentation and/or other materials provided with the ## distribution. ## ## This work was supported in part by funding from the Defense Advanced ## Research Projects Agency and the National Science Foundation of the ## United States of America, and the CMU Sphinx Speech Consortium. ## ## THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND ## ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ## THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ## PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY ## NOR ITS EMPLOYEES BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ## ## ==================================================================== ## ## Author: David Huggins-Daines ## use strict; package Queue::Job; sub new { my $this = shift; my $class = ref $this || $this; my $self = bless { deps => [], name => 'job.'. time(), }, $class; if (ref($_[0]) eq 'CODE') { $self->{coderef} = shift; $self->{codeargs} = \@_; } elsif (ref($_[0]) eq 'HASH') { %$self = (%$self, %{shift()}); } else { $self->{command} = [@_]; } return $self; } 1;