Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging
[qemu/ar7.git] / tests / migration / guestperf / timings.py
blob2374010c6c986faf2889564d1250d2e16f645004
2 # Migration test timing records
4 # Copyright (c) 2016 Red Hat, Inc.
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.
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.
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/>.
21 class TimingRecord(object):
23 def __init__(self, tid, timestamp, value):
25 self._tid = tid
26 self._timestamp = timestamp
27 self._value = value
29 def serialize(self):
30 return {
31 "tid": self._tid,
32 "timestamp": self._timestamp,
33 "value": self._value
36 @classmethod
37 def deserialize(cls, data):
38 return cls(
39 data["tid"],
40 data["timestamp"],
41 data["value"])
44 class Timings(object):
46 def __init__(self, records):
48 self._records = records
50 def serialize(self):
51 return [record.serialize() for record in self._records]
53 @classmethod
54 def deserialize(cls, data):
55 return Timings([TimingRecord.deserialize(record) for record in data])