Ignore:
Timestamp:
Dec 27, 2011, 11:33:55 PM (12 years ago)
Author:
Jessica B. Hamrick <jhamrick@…>
Branches:
no-cups
Children:
ce2abc5
Parents:
7c143c9
git-author:
Jessica B. Hamrick <jhamrick@…> (12/27/11 23:33:55)
git-committer:
Jessica B. Hamrick <jhamrick@…> (12/27/11 23:33:55)
Message:

Implement send-document operation and add threading so that the gutenbach server can play jobs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • server/lib/gutenbach/server/printer.py

    r7c143c9 re58af05  
    11#import alsaaudio as aa
    2 from .exceptions import InvalidJobException, InvalidPrinterStateException
    3 from .job import Job
     2from . import InvalidJobException, InvalidPrinterStateException
     3from . import Job
    44import gutenbach.ipp as ipp
    55import logging
     
    221221        return job
    222222
     223    def send_document(self, jobid, document):
     224        job = self.jobs[jobid]
     225        if job.status != ipp.JobStates.HELD:
     226            raise InvalidPrinterStateException(
     227                "Invalid job state: %d" % job.status)
     228        job.document = document
     229        job.status = ipp.JobStates.PENDING
     230
    223231    def print_job(self, job):
    224232        pass
     
    226234    def complete_job(self, jobid):
    227235        job = self.jobs[self.active_jobs.pop(0)]
    228         if job.jobid != jobid:
    229             raise InvalidJobException(
    230                 "Completed job %d has unexpected job id %d!" % \
    231                 (job.jobid, jobid))
    232        
    233236        self.finished_jobs.append(job)
    234237        job.finish()
    235         return job.jobid
     238        return job.jid
    236239
    237240    def start_job(self, jobid):
    238241        job = self.jobs[self.active_jobs[0]]
    239         if job.jobid != jobid:
    240             raise InvalidJobException(
    241                 "Completed job %d has unexpected job id %d!" % \
    242                 (job.jobid, jobid))
    243 
    244         if job.status == 'playing':
     242        if job.status != ipp.JobStates.PENDING:
    245243            raise InvalidPrinterStateException(
    246                 "Next job in queue (id %d) is " + \
    247                 "already playing!" % jobid)
    248 
     244                "Invalid job state: %s" % job.status)
    249245        job.play()
     246
     247    @property
     248    def next_job(self):
     249        if len(self.active_jobs) == 0:
     250            job = None
     251        else:
     252            job = self.active_jobs[0]
     253        return job       
    250254
    251255    def get_job(self, jobid):
Note: See TracChangeset for help on using the changeset viewer.