// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/profiler/protobuf/xplane.proto

package org.tensorflow.proto.profiler;

public interface XLineOrBuilder extends
    // @@protoc_insertion_point(interface_extends:tensorflow.profiler.XLine)
    com.google.protobuf.MessageOrBuilder {

  /**
   * <pre>
   * Id of this line, can be repeated within an XPlane. All XLines with the
   * same id are effectively the same timeline.
   * </pre>
   *
   * <code>int64 id = 1;</code>
   */
  long getId();

  /**
   * <pre>
   * Display id of this line. Multiple lines with the same display_id are
   * grouped together in the same trace viewer row.
   * </pre>
   *
   * <code>int64 display_id = 10;</code>
   */
  long getDisplayId();

  /**
   * <pre>
   * Name of this XLine.
   * </pre>
   *
   * <code>string name = 2;</code>
   */
  java.lang.String getName();
  /**
   * <pre>
   * Name of this XLine.
   * </pre>
   *
   * <code>string name = 2;</code>
   */
  com.google.protobuf.ByteString
      getNameBytes();

  /**
   * <pre>
   * Name of this XLine to display in trace viewer.
   * </pre>
   *
   * <code>string display_name = 11;</code>
   */
  java.lang.String getDisplayName();
  /**
   * <pre>
   * Name of this XLine to display in trace viewer.
   * </pre>
   *
   * <code>string display_name = 11;</code>
   */
  com.google.protobuf.ByteString
      getDisplayNameBytes();

  /**
   * <pre>
   * Start time of this line in nanoseconds since the UNIX epoch.
   * XEvent.offset_ps is relative to this timestamp.
   * </pre>
   *
   * <code>int64 timestamp_ns = 3;</code>
   */
  long getTimestampNs();

  /**
   * <pre>
   * Profiling duration for this line in picoseconds.
   * </pre>
   *
   * <code>int64 duration_ps = 9;</code>
   */
  long getDurationPs();

  /**
   * <pre>
   * XEvents within the same XLine should not overlap in time, but they can be
   * nested.
   * </pre>
   *
   * <code>repeated .tensorflow.profiler.XEvent events = 4;</code>
   */
  java.util.List<org.tensorflow.proto.profiler.XEvent> 
      getEventsList();
  /**
   * <pre>
   * XEvents within the same XLine should not overlap in time, but they can be
   * nested.
   * </pre>
   *
   * <code>repeated .tensorflow.profiler.XEvent events = 4;</code>
   */
  org.tensorflow.proto.profiler.XEvent getEvents(int index);
  /**
   * <pre>
   * XEvents within the same XLine should not overlap in time, but they can be
   * nested.
   * </pre>
   *
   * <code>repeated .tensorflow.profiler.XEvent events = 4;</code>
   */
  int getEventsCount();
  /**
   * <pre>
   * XEvents within the same XLine should not overlap in time, but they can be
   * nested.
   * </pre>
   *
   * <code>repeated .tensorflow.profiler.XEvent events = 4;</code>
   */
  java.util.List<? extends org.tensorflow.proto.profiler.XEventOrBuilder> 
      getEventsOrBuilderList();
  /**
   * <pre>
   * XEvents within the same XLine should not overlap in time, but they can be
   * nested.
   * </pre>
   *
   * <code>repeated .tensorflow.profiler.XEvent events = 4;</code>
   */
  org.tensorflow.proto.profiler.XEventOrBuilder getEventsOrBuilder(
      int index);
}
