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