예제 #1
0
  def encode(self):
    if (self.pid is None or self.tid 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)

    return b"".join(parts)
예제 #2
0
    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)
예제 #3
0
    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)
        for annotation in self.debug_annotations:
            tag = encoder.TagBytes(4, wire_format.WIRETYPE_LENGTH_DELIMITED)
            data = annotation.encode()
            length = encoder._VarintBytes(len(data))
            parts += [tag, length, data]
        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)
예제 #4
0
    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)
예제 #5
0
  def encode(self):
    if self.clock_id is None or self.timestamp is None:
      raise RuntimeError("Clock must have a clock_id and a timestamp.")

    parts = []
    writer = encoder.UInt32Encoder(1, False, False)
    writer(parts.append, self.clock_id)
    writer = encoder.UInt64Encoder(2, False, False)
    writer(parts.append, self.timestamp)

    return b"".join(parts)