~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/smart/protocol.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-08-09 03:34:54 UTC
  • mfrom: (2664.4.8 hpss_debug_timing)
  • Revision ID: pqm@pqm.ubuntu.com-20070809033454-r4dk8909z5zxspum
(John Arbash Meinel) Add timing information to hpss logging

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
client and server.
19
19
"""
20
20
 
21
 
 
22
21
from cStringIO import StringIO
 
22
import time
23
23
 
24
24
from bzrlib import debug
25
25
from bzrlib import errors
300
300
        """
301
301
        self._request = request
302
302
        self._body_buffer = None
 
303
        self._request_start_time = None
303
304
 
304
305
    def call(self, *args):
305
306
        if 'hpss' in debug.debug_flags:
306
 
            mutter('hpss call:   %r', args)
 
307
            mutter('hpss call:   %s', repr(args)[1:-1])
 
308
            self._request_start_time = time.time()
307
309
        self._write_args(args)
308
310
        self._request.finished_writing()
309
311
 
313
315
        After calling this, call read_response_tuple to find the result out.
314
316
        """
315
317
        if 'hpss' in debug.debug_flags:
316
 
            mutter('hpss call w/body: %r (%r...)', args, body[:20])
 
318
            mutter('hpss call w/body: %s (%r...)', repr(args)[1:-1], body[:20])
 
319
            mutter('              %d bytes', len(body))
 
320
            self._request_start_time = time.time()
317
321
        self._write_args(args)
318
322
        bytes = self._encode_bulk_data(body)
319
323
        self._request.accept_bytes(bytes)
326
330
        each pair are separated by a comma, and no trailing \n is emitted.
327
331
        """
328
332
        if 'hpss' in debug.debug_flags:
329
 
            mutter('hpss call w/readv: %r', args)
 
333
            mutter('hpss call w/readv: %s', repr(args)[1:-1])
 
334
            self._request_start_time = time.time()
330
335
        self._write_args(args)
331
336
        readv_bytes = self._serialise_offsets(body)
332
337
        bytes = self._encode_bulk_data(readv_bytes)
333
338
        self._request.accept_bytes(bytes)
334
339
        self._request.finished_writing()
 
340
        if 'hpss' in debug.debug_flags:
 
341
            mutter('              %d bytes in readv request', len(readv_bytes))
335
342
 
336
343
    def cancel_read_body(self):
337
344
        """After expecting a body, a response code may indicate one otherwise.
349
356
        """
350
357
        result = self._recv_tuple()
351
358
        if 'hpss' in debug.debug_flags:
352
 
            mutter('hpss result: %r', result)
 
359
            if self._request_start_time is not None:
 
360
                mutter('   result:   %6.3fs  %s',
 
361
                       time.time() - self._request_start_time,
 
362
                       repr(result)[1:-1])
 
363
                self._request_start_time = None
 
364
            else:
 
365
                mutter('   result:   %s', repr(result)[1:-1])
353
366
        if not expect_body:
354
367
            self._request.finished_reading()
355
368
        return result
371
384
        self._request.finished_reading()
372
385
        self._body_buffer = StringIO(_body_decoder.read_pending_data())
373
386
        # XXX: TODO check the trailer result.
 
387
        if 'hpss' in debug.debug_flags:
 
388
            mutter('              %d body bytes read',
 
389
                   len(self._body_buffer.getvalue()))
374
390
        return self._body_buffer.read(count)
375
391
 
376
392
    def _recv_tuple(self):