qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

timings.py (1519B)


      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 
     21 class 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 
     44 class 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])