summaryrefslogtreecommitdiff
path: root/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py
diff options
context:
space:
mode:
Diffstat (limited to 'systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py')
-rw-r--r--systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py222
1 files changed, 0 insertions, 222 deletions
diff --git a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py b/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py
deleted file mode 100644
index 2da179b..0000000
--- a/systrace/catapult/common/py_trace_event/py_trace_event/trace_event_impl/perfetto_proto_classes.py
+++ /dev/null
@@ -1,222 +0,0 @@
-# Copyright 2019 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-""" Classes representing perfetto trace protobuf messages.
-
-This module makes use of neither python-protobuf library nor python classes
-compiled from .proto definitions, because currently there's no way to
-deploy those to all the places where telemetry is run.
-
-TODO(crbug.com/944078): Remove this module after the python-protobuf library
-is deployed to all the bots.
-
-Definitions of perfetto messages can be found here:
-https://android.googlesource.com/platform/external/perfetto/+/refs/heads/master/protos/perfetto/trace/
-"""
-
-import encoder
-import wire_format
-
-
-class TracePacket(object):
- def __init__(self):
- self.interned_data = None
- self.thread_descriptor = None
- self.incremental_state_cleared = None
- self.track_event = None
- self.trusted_packet_sequence_id = None
- self.chrome_benchmark_metadata = None
-
- def encode(self):
- parts = []
- if self.trusted_packet_sequence_id is not None:
- writer = encoder.UInt32Encoder(10, False, False)
- writer(parts.append, self.trusted_packet_sequence_id)
- if self.track_event is not None:
- tag = encoder.TagBytes(11, wire_format.WIRETYPE_LENGTH_DELIMITED)
- data = self.track_event.encode()
- length = encoder._VarintBytes(len(data))
- parts += [tag, length, data]
- if self.interned_data is not None:
- tag = encoder.TagBytes(12, wire_format.WIRETYPE_LENGTH_DELIMITED)
- data = self.interned_data.encode()
- length = encoder._VarintBytes(len(data))
- parts += [tag, length, data]
- if self.incremental_state_cleared is not None:
- writer = encoder.BoolEncoder(41, False, False)
- writer(parts.append, self.incremental_state_cleared)
- if self.thread_descriptor is not None:
- tag = encoder.TagBytes(44, wire_format.WIRETYPE_LENGTH_DELIMITED)
- data = self.thread_descriptor.encode()
- length = encoder._VarintBytes(len(data))
- parts += [tag, length, data]
- if self.chrome_benchmark_metadata is not None:
- tag = encoder.TagBytes(48, wire_format.WIRETYPE_LENGTH_DELIMITED)
- data = self.chrome_benchmark_metadata.encode()
- length = encoder._VarintBytes(len(data))
- parts += [tag, length, data]
-
- return b"".join(parts)
-
-
-class InternedData(object):
- def __init__(self):
- self.event_category = None
- self.legacy_event_name = None
-
- def encode(self):
- parts = []
- if self.event_category is not None:
- tag = encoder.TagBytes(1, wire_format.WIRETYPE_LENGTH_DELIMITED)
- data = self.event_category.encode()
- length = encoder._VarintBytes(len(data))
- parts += [tag, length, data]
- if self.legacy_event_name is not None:
- tag = encoder.TagBytes(2, wire_format.WIRETYPE_LENGTH_DELIMITED)
- data = self.legacy_event_name.encode()
- length = encoder._VarintBytes(len(data))
- parts += [tag, length, data]
-
- return b"".join(parts)
-
-
-class EventCategory(object):
- def __init__(self):
- self.iid = None
- self.name = None
-
- def encode(self):
- if (self.iid is None or self.name is None):
- raise RuntimeError("Missing mandatory fields.")
-
- parts = []
- writer = encoder.UInt32Encoder(1, False, False)
- writer(parts.append, self.iid)
- writer = encoder.StringEncoder(2, False, False)
- writer(parts.append, self.name)
-
- return b"".join(parts)
-
-
-LegacyEventName = EventCategory
-
-
-class ThreadDescriptor(object):
- def __init__(self):
- self.pid = None
- self.tid = None
- self.reference_timestamp_us = None
-
- def encode(self):
- if (self.pid is None or self.tid is None or
- self.reference_timestamp_us is None):
- raise RuntimeError("Missing mandatory fields.")
-
- parts = []
- writer = encoder.UInt32Encoder(1, False, False)
- writer(parts.append, self.pid)
- writer = encoder.UInt32Encoder(2, False, False)
- writer(parts.append, self.tid)
- writer = encoder.Int64Encoder(6, False, False)
- writer(parts.append, self.reference_timestamp_us)
-
- return b"".join(parts)
-
-
-class TrackEvent(object):
- def __init__(self):
- self.timestamp_absolute_us = None
- self.timestamp_delta_us = None
- self.legacy_event = None
- self.category_iids = None
-
- def encode(self):
- parts = []
- if self.timestamp_delta_us is not None:
- writer = encoder.Int64Encoder(1, False, False)
- writer(parts.append, self.timestamp_delta_us)
- if self.category_iids is not None:
- writer = encoder.UInt32Encoder(3, is_repeated=True, is_packed=False)
- writer(parts.append, self.category_iids)
- if self.legacy_event is not None:
- tag = encoder.TagBytes(6, wire_format.WIRETYPE_LENGTH_DELIMITED)
- data = self.legacy_event.encode()
- length = encoder._VarintBytes(len(data))
- parts += [tag, length, data]
- if self.timestamp_absolute_us is not None:
- writer = encoder.Int64Encoder(16, False, False)
- writer(parts.append, self.timestamp_absolute_us)
-
- return b"".join(parts)
-
-
-class LegacyEvent(object):
- def __init__(self):
- self.phase = None
- self.name_iid = None
-
- def encode(self):
- parts = []
- if self.name_iid is not None:
- writer = encoder.UInt32Encoder(1, False, False)
- writer(parts.append, self.name_iid)
- if self.phase is not None:
- writer = encoder.Int32Encoder(2, False, False)
- writer(parts.append, self.phase)
-
- return b"".join(parts)
-
-
-class ChromeBenchmarkMetadata(object):
- def __init__(self):
- self.benchmark_start_time_us = None
- self.story_run_time_us = None
- self.benchmark_name = None
- self.benchmark_description = None
- self.story_name = None
- self.story_tags = None
- self.story_run_index = None
- self.label = None
- self.had_failures = None
-
- def encode(self):
- parts = []
- if self.benchmark_start_time_us is not None:
- writer = encoder.Int64Encoder(1, False, False)
- writer(parts.append, self.benchmark_start_time_us)
- if self.story_run_time_us is not None:
- writer = encoder.Int64Encoder(2, False, False)
- writer(parts.append, self.story_run_time_us)
- if self.benchmark_name is not None:
- writer = encoder.StringEncoder(3, False, False)
- writer(parts.append, self.benchmark_name)
- if self.benchmark_description is not None:
- writer = encoder.StringEncoder(4, False, False)
- writer(parts.append, self.benchmark_description)
- if self.label is not None:
- writer = encoder.StringEncoder(5, False, False)
- writer(parts.append, self.label)
- if self.story_name is not None:
- writer = encoder.StringEncoder(6, False, False)
- writer(parts.append, self.story_name)
- if self.story_tags is not None:
- writer = encoder.StringEncoder(7, is_repeated=True, is_packed=False)
- writer(parts.append, self.story_tags)
- if self.story_run_index is not None:
- writer = encoder.Int32Encoder(8, False, False)
- writer(parts.append, self.story_run_index)
- if self.had_failures is not None:
- writer = encoder.BoolEncoder(9, False, False)
- writer(parts.append, self.had_failures)
-
- return b"".join(parts)
-
-
-def write_trace_packet(output, trace_packet):
- tag = encoder.TagBytes(1, wire_format.WIRETYPE_LENGTH_DELIMITED)
- output.write(tag)
- binary_data = trace_packet.encode()
- encoder._EncodeVarint(output.write, len(binary_data))
- output.write(binary_data)
-