Show
Ignore:
Timestamp:
11/30/07 23:48:03 (17 years ago)
Author:
jerome
Message:

Moved try/except out of the main loop to increase performance.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pkpgcounter/trunk/pkpgpdls/zjstream.py

    r522 r532  
    5252    def getJobSize(self) : 
    5353        """Computes the number of pages in a ZjStream document.""" 
    54         unpack = struct.unpack 
    5554        self.infile.seek(4, 0) # Skip ZJZJ/JZJZ header 
    5655        startpagecount = endpagecount = 0 
    57         while True : 
    58             header = self.infile.read(16) 
    59             if not header : 
    60                 break 
    61             try :     
     56        unpackHeader = self.unpackHeader 
     57        unpack = struct.unpack 
     58        try : 
     59            while True : 
     60                header = self.infile.read(16) 
     61                if not header : 
     62                    break 
    6263                (totalChunkSize, 
    6364                 chunkType, 
    6465                 numberOfItems, 
    6566                 reserved, 
    66                  signature) = unpack(self.unpackHeader, header) 
    67             except struct.error : 
    68                 raise pdlparser.PDLParserError, "This file doesn't seem to be valid ZjStream datas." 
    69             self.infile.seek(totalChunkSize - len(header), 1) 
    70             if chunkType == 2 :     
    71                 #self.logdebug("startPage") 
    72                 startpagecount += 1 
    73             elif chunkType == 3 : 
    74                 #self.logdebug("endPage") 
    75                 endpagecount += 1 
    76             #elif chunkType == 0 : 
    77             #    self.logdebug("startDoc") 
    78             #elif chunkType == 1 :     
    79             #    self.logdebug("endDoc") 
    80                  
    81             #self.logdebug("Chunk size : %s" % totalChunkSize) 
    82             #self.logdebug("Chunk type : 0x%08x" % chunkType) 
    83             #self.logdebug("# items : %s" % numberOfItems) 
    84             #self.logdebug("reserved : 0x%04x" % reserved) 
    85             #self.logdebug("signature : 0x%04x" % signature) 
    86             #self.logdebug("\n") 
     67                 signature) = unpack(unpackHeader, header) 
     68                self.infile.seek(totalChunkSize - len(header), 1) 
     69                if chunkType == 2 :     
     70                    #self.logdebug("startPage") 
     71                    startpagecount += 1 
     72                elif chunkType == 3 : 
     73                    #self.logdebug("endPage") 
     74                    endpagecount += 1 
     75                #elif chunkType == 0 : 
     76                #    self.logdebug("startDoc") 
     77                #elif chunkType == 1 :     
     78                #    self.logdebug("endDoc") 
     79                #     
     80                #self.logdebug("Chunk size : %s" % totalChunkSize) 
     81                #self.logdebug("Chunk type : 0x%08x" % chunkType) 
     82                #self.logdebug("# items : %s" % numberOfItems) 
     83                #self.logdebug("reserved : 0x%04x" % reserved) 
     84                #self.logdebug("signature : 0x%04x" % signature) 
     85                #self.logdebug("\n") 
     86        except struct.error : 
     87            raise pdlparser.PDLParserError, "This file doesn't seem to be valid ZjStream datas." 
    8788             
    8889        # Number of endpage commands should be sufficient,