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])