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