qemu/tests/migration/guestperf/timings.py
<<
>>
Prefs
   1#
   2# Migration test timing records
   3#
   4# Copyright (c) 2016 Red Hat, Inc.
   5#
   6# This library is free software; you can redistribute it and/or
   7# modify it under the terms of the GNU Lesser General Public
   8# License as published by the Free Software Foundation; either
   9# version 2.1 of the License, or (at your option) any later version.
  10#
  11# This library is distributed in the hope that it will be useful,
  12# but WITHOUT ANY WARRANTY; without even the implied warranty of
  13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  14# Lesser General Public License for more details.
  15#
  16# You should have received a copy of the GNU Lesser General Public
  17# License along with this library; if not, see <http://www.gnu.org/licenses/>.
  18#
  19
  20
  21class TimingRecord(object):
  22
  23    def __init__(self, tid, timestamp, value):
  24
  25        self._tid = tid
  26        self._timestamp = timestamp
  27        self._value = value
  28
  29    def serialize(self):
  30        return {
  31            "tid": self._tid,
  32            "timestamp": self._timestamp,
  33            "value": self._value
  34        }
  35
  36    @classmethod
  37    def deserialize(cls, data):
  38        return cls(
  39            data["tid"],
  40            data["timestamp"],
  41            data["value"])
  42
  43
  44class Timings(object):
  45
  46    def __init__(self, records):
  47
  48        self._records = records
  49
  50    def serialize(self):
  51        return [record.serialize() for record in self._records]
  52
  53    @classmethod
  54    def deserialize(cls, data):
  55        return Timings([TimingRecord.deserialize(record) for record in data])
  56