1# Copyright (c) 2012 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Provides an interface to communicate with the device via the adb command.
6
7Assumes adb binary is currently on system path.
8"""
9
10
11import collections
12
13
14def ParseIoStatsLine(line):
15  """Parses a line of io stats into a IoStats named tuple."""
16  # Field definitions: http://www.kernel.org/doc/Documentation/iostats.txt
17  IoStats = collections.namedtuple('IoStats',
18                                   ['device',
19                                    'num_reads_issued',
20                                    'num_reads_merged',
21                                    'num_sectors_read',
22                                    'ms_spent_reading',
23                                    'num_writes_completed',
24                                    'num_writes_merged',
25                                    'num_sectors_written',
26                                    'ms_spent_writing',
27                                    'num_ios_in_progress',
28                                    'ms_spent_doing_io',
29                                    'ms_spent_doing_io_weighted',
30                                    ])
31  fields = line.split()
32  return IoStats._make([fields[2]] + [int(f) for f in fields[3:]])
33